一个
然而,似乎在元类中定义的
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
为什么会这样?