首页 > 解决方案 > Python - 有没有办法从方法中访问它所附加的类?

问题描述

在 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

标签: pythonclassmethods

解决方案


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


推荐阅读