以下,base_id
和_id
是一個類變量,並在所有子類中共享。
有沒有辦法將他們分成每個班級?覆蓋python中的類變量?
from itertools import count
class Parent(object):
base_id = 0
_id = count(0)
def __init__(self):
self.id = self.base_id + self._id.next()
class Child1(Parent):
base_id = 100
def __init__(self):
Parent.__init__(self)
print 'Child1:', self.id
class Child2(Parent):
base_id = 200
def __init__(self):
Parent.__init__(self)
print 'Child2:', self.id
c1 = Child1() # 100
c2 = Child2() # 201 <- want this to be 200
c1 = Child1() # 102 <- want this to be 101
c2 = Child2() # 203 <- want this to be 201
爲什麼要百位數字代表班級,有什麼特別的理由嗎?如果你得到100多個實例呢?那麼你會有重疊。你會在哪裏看到ID,並且有沒有比使用ID更好地區分類的方法? (也許你可以顯示一些額外的信息,例如。) – jpmc26
這實際上並不重要;即使eugene將ID改爲2元組(例如(1,0),(1,1),(1,2)...代表'Child1'),創建獨立計數器的問題仍然存在。 –