给定一个方法,如何获取定义此方法的类?

时间:2019-02-14 20:10:55

标签: python class methods python-datamodel

如果这是一个类方法,则此任务很简单:

class MyClass:
    @classmethod
    def some_fun(cls):
        pass

fun = MyClass.some_fun
my_class = fun.__self__
print (my_class is MyClass)  # True

但是,仅由于some_funclassmethod才有效。让我们将其设为常规方法,上面的代码将停止工作:

class MyClass:
    def some_fun(self):
        pass

fun = MyClass.some_fun
my_class = fun.__self__  # AttributeError: 'function' object has no attribute '__self__'
print (my_class is MyClass)

上面的代码引发AttributeError

如果MyClass是常规方法而不是MyClass.some_fun,给定some_fun,有没有办法检索classmethod

0 个答案:

没有答案