<p>函数“barn”将进入带有sqlite3的数据库,并将用给定名称的子级的名称重新生成一个列表,它在我第一次调用函数时工作得非常好,但第二次调用它时会出现错误:</p>
<pre><code>Traceback (most recent call last):
File "<pyshell#34>", line 1, in <module>
a.barn('David')
TypeError: 'list' object is not callable
</code></pre>
<p>我的代码:</p>
<pre><code>class barn:
def __init__(self):
self.datapers=[]
self.pappor=[]
self.mammor=[]
c.execute("SELECT name FROM person")
for namn in c:
self.datapers.append(str(namn[0]))
c.execute("SELECT far FROM parent")
for pappa in c:
self.pappor.append(str(pappa[0]))
c.execute("SELECT mor FROM parent")
for mamma in c:
self.mammor.append(str(mamma[0]))
def barn(self,namn):
self.barn=[]
self.barnid=[]
if namn in self.pappor:
print "Pappa :"+namn
self.b=c.execute("SELECT id FROM parent WHERE far=?;",(namn,))
conn.commit()
for barnXID in self.b:
self.barnid.append(barnXID[0])
for barnID in self.barnid:
c.execute("SELECT name FROM person WHERE id=?;",(barnID,))
self.barn.append(str(c.fetchone()[0]))
conn.commit()
return
</code></pre>
<p>你能明白为什么会这样吗?你知道吗</p>