Overriding class function with instance function in python
考虑这个例子:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | class master: @classmethod def foo(cls): cls.bar() class slaveClass( master ): @classmethod def bar(cls): print("This is class method") slaveType = slaveClass slaveType.foo() class slaveInstance( master ): #def foo(self): # self.foo() def __init__(self,data): self.data=data print("Instance has been made") def bar(self): print("This is"+self.data+" method") slaveType = slaveInstance("instance") slaveType.foo() |
我知道它的工作,当最后的
谢谢你的堆垛机。
好吧。。。我尽了最大的努力去怀孕,想知道该问什么,但我失败了。现在我知道了,这就是我想要做的:创建一个同时是实例和类方法的方法。还有我需要的解决方案。
但它看起来还是不太漂亮。也许有更干净的方法或更干净的黑客。
仔细看一下Doc中的ClassMethod。实例方法将实例作为第一个参数传递,而类方法将类作为第一个参数传递。调用