這看起來像類繼承,但我認爲它不是,並且必須有一個簡單的方法來執行以下操作。看看這個簡單的代碼:python多重嵌套類
class Land:
def __init__(self):
print "a new Land"
self.farms = []
def addfarm(self):
self.farms.append(Farm())
class Farm:
def __init__(self):
print "a new farm"
self.animals = []
def addanimal(self,name):
self.animals.append(Animal(name))
class Animal:
def __init__(self, name):
print "hi, I am %s" % name
self.name = name
USA = Land()
USA.addfarm()
USA.farms[0].addanimal('George')
USA.farms[0].addanimal('Martin')
USA.addfarm()
USA.farms[1].addanimal('Polly')
USA.farms[1].addanimal('Ralph')
有沒有讓所有的動物沒有做?:
for eachfarm in USA.farms:
for each in eachfarm.animals:
print each.name
我問一個簡單的方法,因爲如果例如用戶希望增加一個新的喬治去農場0我想很快就能說出這個名字。我也可以快速運行一個功能,讓我在陸地或所有農場都可以擁有所有的動物。我應該爲所有這些編寫函數還是Python有自己的功能?
我也很想知道我的嵌套類結構是否不正確,並最終可能導致問題。
例如,假設我有一個功能,給定一個動物告訴我它的完美食物組合。我希望能夠在我的所有動物身上運行該功能並將它們寫回到它們的對象中。如果它們嵌套,恐怕功能可能會變得困惑!
謝謝!
你想寫什麼而不是嵌套循環?此外,你是否想要讓所有農場中的「被採納」名稱的全球名單是全球性的,還是僅僅是每個農場?如果用戶試圖向農場1添加「喬治」會怎麼樣? – BrenBarn