我是Python新手。我对Python中的静态方法有一个疑问。我知道我们可以通过使用类名(ClassName.StaticMethodName
)来调用静态方法,并且使用对象(例如objName.StaticMethodName
)是不可能的。
但是我可以通过使用对象来调用静态方法
这是我的代码。我可以通过使用对象来调用方法ParentStaticMethod()
这怎么可能?
class Parent:
def __init__(self):
print 'Parent Class Constructor'
def ParentMethod(self):
print 'Parent Method'
@staticmethod
def ParentStaticMethod():
print 'Parent Static Method'
pObj=Parent()
pObj.ParentMethod()
pObj.ParentStaticMethod()
答案 0 :(得分:1)
没有什么可以阻止您使用对象实例来调用静态方法。请参阅documentation for the staticmethod
decorator:
可以在类(例如
TemplCls<TArg>
)或实例(例如C.f()
)上调用它。除了类之外,该实例将被忽略。