【发布时间】:2012-08-04 13:40:51
【问题描述】:
我在声明列表时遇到了一些问题。似乎我无法删除列表中的所有元素。在reset_a 打印输出中,它显示一个空列表,但在检查myFunction 中的列表之后,前一个元素仍在列表中。如何声明一个全局列表并将其用于所有其他定义的列表?
a = []
def reset_a():
global a
del a[:]
print a
def myFunction():
global a
#check other stuffs........... then..
print a
if data not in a:
a.append(data)
time.sleep(5)
reset_a()
if __name__=='__main__':
while True:
myFunction()
已编辑:我找到了完成它的方法。
global a
a = []
def reset_a():
del a[:]
print a
def myFunction():
#check other stuffs...........and get 'data' then..
print a
if data not in a:
a.append(data)
time.sleep(5)
reset_a()
if __name__=='__main__':
while True:
myFunction()
【问题讨论】:
-
为什么需要使用全局变量?
-
我只是尝试出错兄弟,因为我是 python 新手.. 但没有运气让它工作.. =\
-
IIRC 官方 python 教程并不提倡像这样广泛使用全局变量
-
my_function()可能在reset_a()清除后再次将相同的元素放入列表中。 -
您能否完成该问题以作为您遇到的问题的一个有效示例?目前,无法知道列表是如何被修改的,
data也没有定义。