如何区分函数和类方法?
如果变量引用的是函数或类方法,那么在它是类方法的情况下,尤其是在如给定示例中仍声明该类的情况下,如何确定该类是哪个并获得类类型。
例如。
def get_info(function_or_method): print function_or_method
class Foo(object):
def __init__(self):
pass
get_info(__init__)
def bar():
pass
get_info(bar)
为了再次强调JF
Sebastian提到的一点,我希望能够在类中声明函数时区分它(当我得到的类型是一个函数时)而非绑定或未绑定的方法)。即。get_info(__init__)
我希望能够在第一次调用发生的地方检测到,该方法被声明为类的一部分。
因为我在其周围放置了一个装饰器,并获得了 函数的句柄,所以我提出了这个问题,实际上我无法弄清楚是在类中还是将函数声明为独立函数
回答:
为了再次强调JF
Sebastian提到的一点,我希望能够在类中声明函数时(当我得到的类型是函数而不是绑定或未绑定的方法时)进行区分。即。
get_info(__init__)
我希望能够在第一次调用发生的地方检测到,该方法被声明为类的一部分。因为我在其周围放置了一个装饰器,并获得了init函数的句柄,所以我提出了这个问题,实际上我无法弄清楚是在类中还是将函数声明为独立函数
你不能 JF
Sebastian的答案仍然是100%适用。当执行类定义的主体时,该类本身尚不存在。语句(__init__
函数定义和get_info(__init__)
调用)在新的本地名称空间中进行;在进行调用get_info
时,__init__
是对该名称空间中函数的引用,这与在类外部定义的函数没有区别。
以上是 如何区分函数和类方法? 的全部内容, 来源链接: utcz.com/qa/408147.html