2012-08-04 92 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