【发布时间】:2017-11-22 13:15:24
【问题描述】:
我想定义一个全局列表并向其附加一个列表。我得到了一些点击事件的列表(i [0])并将其附加到mnum_list。现在我想创建一个全局列表并将该 mnum_list 附加到它。知道怎么做吗?
def OnClick(self, event):
name = event.GetEventObject().GetLabelText()
cursor= self.conn.execute("SELECT * FROM ELEMENT where SYMBOL==?", (name,))
elements = cursor.fetchall()
print elements
cursor= self.conn.execute("SELECT ATOMIC_NUMBER FROM ELEMENT where SYMBOL = ?", (name,))
numbers = cursor.fetchone()[0]
print numbers
atomicnumber = numbers
cursor= self.conn.execute("SELECT MOL_NUMBER FROM LINK where ELEMENT_NUMBER = ?", (atomicnumber,))
mnumbers = cursor.fetchall()
print mnumbers
mnum_list = []
for i in mnumbers:
mnum_list.append(i[0])
print mnum_list
【问题讨论】:
-
附带说明:我个人认为全局变量是设计缺陷,如果可能的话,我会不惜一切代价避免它们。
-
@mpf82 不,您的评论好像全局变量本质上是错误的;他们不是。全局变量有完全有效的用例,例如“常量”值。当您开始尝试使用全局变量作为状态时,您开始获得意大利面条代码。
-
@mpf82:OP 正在尝试操纵全局。他们可以这样做,而不必知道如何使用
global,因为没有分配给全局名称。 -
如果你有一个全局列表(
some_global_list = []在模块级别),那么只需引用它以附加到它:some_global_list.append(mnum_list)。改变一个全局变量就是这么简单。
标签: python list onclick append global