函数“barn”将进入带有sqlite3的数据库,并将用给定名称的子级的名称重新生成一个列表,它在我第一次调用函数时工作得非常好,但第二次调用它时会出现错误:
Traceback (most recent call last):
File "<pyshell#34>", line 1, in <module>
a.barn('David')
TypeError: 'list' object is not callable
我的代码:
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
你能明白为什么会这样吗?你知道吗
您的
barn
方法通过将self.barn
设置为列表来覆盖自身。请为列表使用其他名称。你知道吗在调用方法
barn
之后,您将用一个空列表替换它,这个列表不是可调用的对象。你知道吗考虑重命名属性:
相关问题 更多 >
编程相关推荐