【发布时间】:2019-12-28 18:39:19
【问题描述】:
classmethod,无论是内联定义还是作为metaclass 的一部分,都可以在类型上调用:
class eggs( type ):
def f1( cls ):
print( "eggs" )
class spam( metaclass = eggs ):
@classmethod
def f2( cls ):
print( "spam" )
f = spam()
type(f).f2() #--> spam
type(f).f1() #--> eggs
但是,似乎无法在实例上调用元类中定义的 classmethod:
f.f2() #--> spam
f.f1() #--> AttributeError
这是为什么?
【问题讨论】:
标签: python python-3.x metaclass class-method