Python-有什么方法可以从方法内部访问它所附加的类吗?

时间:2019-04-02 23:44:47

标签: python class methods

在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

1 个答案:

答案 0 :(得分:1)

从属性检索的值不记得它们来自何处。您不能从在类定义之后附加的方法中获取该类。