【问题标题】:How can I tell if a given method is a classmethod or instancemethod in Python?如何判断给定方法是 Python 中的类方法还是实例方法?
【发布时间】:2009-11-06 13:15:48
【问题描述】:

有时检查 m.im_self 是否是类,但似乎不是 100% 可靠(例如,如果您在一个方法上使用多个装饰器。)

【问题讨论】:

  • 请提供工作/非工作场景的代码示例。
  • 看源码有什么问题?
  • 挑衅性的回答,因为您没有具体说明您想要达到的目标:您为什么还要关心?如果你可以调用它 - 你很好。如果你不能 - 好吧,不管它是类方法、静态方法还是实例方法,都会发生这种情况。

标签: python class


【解决方案1】:

如果它是类上的绑定方法,那么它就是类方法。

from inspect import ismethod, isclass
def isclassmethod( m ):
 return ismethod(m) and isclass(m.__self__)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-01-28
    • 2010-11-24
    • 2011-07-25
    • 2011-04-11
    • 2014-03-12
    • 2017-07-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多