69得票11回答
Python中的'is'关键字是如何实现的?

...is关键字可用于字符串的相等性比较。>>> s = 'str' >>> s is 'str' True >>> s is 'st' False 我尝试了__is__()和__eq__(),但它们都没有起作用。>>> ...

47得票5回答
如何检查Python方法是否绑定?

给定一个方法的引用,是否有办法检查该方法是否绑定到对象上?您还可以访问它绑定到的实例吗?

36得票2回答
Python数据模型与内置函数之间的关系是什么?

在 Stack Overflow 上阅读 Python 的答案时,我经常看到一些人建议用户直接使用数据模型的特殊方法或属性。 然后我看到有相反的建议(有时是来自我自己),说不要那样做,而是要直接使用内置函数和运算符。 这是为什么呢? Python 数据模型的特殊“dunder”方法和属性与...

30得票2回答
薛定谔的变量:如果你检查它是否存在,__class__单元格会神奇地出现?

这里有一个惊喜: >>> class B: ... print(locals()) ... def foo(self): ... print(locals()) ... print(__class__ in locals()....

27得票1回答
你需要实现哪些Python双下划线/魔术方法来正确代理一个对象?

我正在尝试创建一个对象代理。 属性查找可以通过简单实现__getattribute__、__setattr__和__delattr__方法来完成。 然而,其他功能,如len(x), x[], bool(x)需要实现其他dunder方法,比如__len__, __getitem__, __boo...

26得票1回答
Python属性查找过程是如何工作的?

当我提到“Python属性查找过程”时,我指的是:当你写x.foo时,Python执行的操作是什么?在搜索网络文档时,我没有找到太多关于此的资料。我找到的最好的一篇文章将这个过程总结为以下几个步骤(你可以在这里看到完整的文章)。 如果attrname是objectname的特殊属性(即Py...

24得票2回答
Python - class __hash__ 方法和集合

我正在使用 Python 类的 set() 和 __hash__ 方法来防止向集合中添加相同的哈希对象。根据 Python 数据模型文档,set() 将相同哈希对象视为同一对象,并仅添加它们一次。 但下面的行为与此不同:class MyClass(object): def __ha...

24得票5回答
如何在Python 2.x中对对象进行内省?

我正在使用Python 2.x,并且我有一个对象,但该对象的文档说明不是特别清楚。我希望能够获取该对象的属性列表及其每个属性的类型。 同样地,我也想要获取该对象的方法列表,以及有关每个方法的其他信息,例如参数数量及其相应的类型。 我觉得我在Google搜索中可能只是缺少正确的术语。虽然不太...

17得票4回答
何时、在哪里以及如何更改对象的 __class__ 属性?

我想要能够做到:>>> class a(str): ... pass ... >>> b = a() >>> b.__class__ = str Traceback (most recent call last): File "...

15得票4回答
在Python中遍历列表时删除元素

在Java中,我可以使用一个 Iterator ,然后使用迭代器的 .remove() 方法来删除迭代器返回的最后一个元素,就像这样:import java.util.*; public class ConcurrentMod { public static void main(St...