說我有下面的代碼:蟒蛇:在父類的方法,調用這個類的類方法,但綁定到一個子類
class Parent(object):
classattr1 = 'parent'
def __init__(self):
Parent.foo()
@classmethod
def foo(cls):
print cls.classattr1
class Child(Parent):
classattr1 = 'child'
def foo(cls):
raise Exception("I shouldn't be here")
Child()
在Parent.__init__
,我需要調用「富」是中定義Parent,但我需要將它綁定到Child,以便訪問cls.classattr1實際上將訪問該屬性,因爲它在Child中被重寫。任何想法如何做到這一點?
不幸的是,子類還需要實現自己的'foo',所以我不能這樣做。事實上,這會更容易。 – Tommy
所以兩者都有不同的'foo's,但是當父類代碼正在運行時,它需要訪問它自己的'foo'而不是孩子的'foo'?但父母'foo'應該使用孩子的屬性? –
爲什麼他們需要'classmethod's?如果他們不這樣做,則更新後的代碼有效。 –