请参见下面的代码:
class MyClass:
# instance method.
def printline(self):
print('This is an instance method!')
@classmethod
def printline(cls):
print('This is a class method!')
# class MyClass ends.
obj = MyClass()
obj.printline()
输出:
This is a class method!
那么,为什么类方法会覆盖实例方法呢?忽略了我们可以简单地更改方法之一的名称这一事实,如何在上述代码中访问实例方法?
该函数的最新定义将掩盖前一个函数。如果实例方法的定义类似于下面的第二个示例,则将调用它:
In [1]: class MyClass:
...:
...: # instance method.
...: def printline(self):
...: print('This is an instance method!')
...:
...: @classmethod
...: def printline(cls):
...: print('This is a class method!')
...:
In [2]: m = MyClass()
In [3]: m.printline()
This is a class method!
In [4]: class MyClass1:
...:
...: @classmethod
...: def printline(cls):
...: print('This is a class method!')
...:
...: # instance method.
...: def printline(self):
...: print('This is an instance method!')
In [5]: m1 = MyClass1()
In [6]: m1.printline()
This is an instance method!
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句