2017-08-06 80 views
0

我開始使用Twitter機器人並且有一個愚蠢的問題,聲明一個變量,代碼非常簡單,剝離了所有內容,但仍然無法正常工作。當我運行的代碼,我得到了以下錯誤消息:Python變量 - 如何聲明它? UnboundLocalError:分配之前引用的局部變量'Counter'

UnboundLocalError: local variable 'Counter' referenced before assignment 

我已經聲明的變量作爲一個全球性的,在不同的位置,但仍然有同樣的問題。

global Counter 

import tweepy, time 

def search(): 
    Counter += 1 
    print("Counter = " + Counter + "\n") 
    time.sleep(60) 

def run(): 
    search() 

if __name__ == '__main__': 
    print "Running"f 
    while True: 
     run() 
+0

'global Counter = 0'。您還沒有爲'計數器'分配任何值# – sinsuren

+0

您需要聲明計數器全局*在哪裏使用*。在全局命名空間中放入'global'關鍵字沒有意義。 –

回答

1

global應該只在有限的範圍(比如一個函數)被用來指示要Counter引用全局對象和地方之一。

另外,你需要一些值初始化Counter

import tweepy, time 

Counter = 0 

def search(): 
    global Counter 
    Counter += 1 
    print("Counter = " + Counter + "\n") 
    time.sleep(60) 

def run(): 
    search() 

if __name__ == '__main__': 
    print "Running" 
    while True: 
     run() 
0

global語句告訴代碼塊內,使用全局變量上下文和不是本地的。

在尋址它之前,你仍然需要初始化這個變量。

相關問題