在Python中,如果我在类中定义方法,则可以使用__class__
访问包含的类:
>>> class A:
... def f(self):
... print(__class__)
...
>>> class B(A):
... pass
...
>>> B().f()
<class '__main__.A'>
但是,如果我在类之外定义方法,然后将其附加到类,则__class__
不可用:
>>> class A:
... pass
...
>>> def f(self):
... print(__class__)
...
>>> A.f = f
>>> class B(A):
... pass
...
>>> B().f()
NameError: name '__class__' is not defined
在第二种情况下,是否有任何方法可以从方法f
中访问它所附加的类A
?
答案 0 :(得分:1)
从属性检索的值不记得它们来自何处。您不能从在类定义之后附加的方法中获取该类。