这看起来像类继承,但我认为它不是,并且必须有一个简单的方法来执行以下操作。看看这个简单的代码: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