从Python中绑定方法对象的实例获取绑定方法的名称

rok*_*rok 2 python methods

我有 :

class A:
    def a():
       pass
Run Code Online (Sandbox Code Playgroud)

输入python命令行后:

Aobj = A()
aBoundMeth = getattr(Aobj, 'a')
Run Code Online (Sandbox Code Playgroud)

我的目标是获取aBoundMeth对象表示的方法的名称.有可能吗?先感谢您.

mgi*_*son 6

假设方法的名称是字符串'a'(在本例中),您可以__name__在函数对象上使用该属性.

例如

>>> Aobj = A()
>>> aBoundMeth = getattr(Aobj, 'a')
>>> aBoundMeth.__name__
'a'
Run Code Online (Sandbox Code Playgroud)

请注意,这是创建时的函数名称.您可以对同一个函数进行更多引用,但名称不会更改.例如

>>> class A(object):
...     def a(self):
...        pass
...     b = a
... 
>>> Aobj = A()
>>> Aobj.a.__name__
'a'
>>> Aobj.b.__name__
'a'
Run Code Online (Sandbox Code Playgroud)