擅长:python、mysql、java
<p>我调试了你的程序,结果是你的person对象中没有setPets方法,所以<code>self.pets</code>从来没有设置过pets列表。它总是<code>None</code>。我添加了一个setPets方法,并更新了<code>petsYay</code>方法以返回一个列表。您还可以使用<code>yield</code>并返回一个生成器在类外部循环。更新代码如下:</p>
<pre><code>class Person(object):
def __init__(self, name):
self.name = name
self.pets = None
def setPets(self, p):
self.pets = p
def callme(self):
return self.name
def petsyay(self):
tempL = []
if self.pets is not None:
for pet in self.pets:
tempL.append(pet.callpet())
return tempL
class Pets(object):
def __init__(self, petname):
self.petname = petname
def callpet(self):
return self.petname
frank = Person("Frank")
poekie = Pets("Poekie")
satan = Pets("Satan")
frank.setPets([poekie, satan])
print frank.petsyay()
</code></pre>