2012-08-04 149 views
1

我在声明列表时遇到了一些问题。看来我不能删除列表中的所有元素。在reset_a打印输出中,它显示一个空列表,但在检查myFunction中的列表之后,前一个元素仍在列表中。我该如何声明一个全局列表并将其全部用于其他定义的?如何声明python全局列表

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() 
+1

为什么你需要在所有使用全局新data不执行? – AnonymousLurker 2012-08-04 13:44:58

+0

我只是尝试和错误兄弟,因为即时通讯新的蟒蛇..但没有运气得到它的工作.. = \ – leong 2012-08-04 13:47:58

+1

IIRC官方的Python教程不提倡广泛使用像这样的全局性 – AnonymousLurker 2012-08-04 14:03:19

回答

0

rest_a()只会如果在a

+0

是的,'#check stuffs'是检查它,然后拿'data'查看列表,如果不是'a',它会执行..我的目标是有时候是这样的。 – leong 2012-08-04 13:53:10

+0

如果您想获得帮助,请发布一个演示问题的示例。 – 2012-08-04 17:57:42