我正在編寫一些Python代碼& selenium webdriver。我得到了錯誤:Python我真的需要在每個函數中進行全局賦值
UnboundLocalError: local variable XXX referenced before assignment
我在首次初始化該對象的主函數中進行全局賦值。在做了一些研究之後,我得到了在函數中分配全局變量的解決方案。我做了全局任務之一的函數,然後我得到了另一個函數中的錯誤
因此,我的問題是我真的需要分配全局分配在每個函數或只在第一次分配該全局變量。
樣本代碼時,我得到了錯誤:在clickLink()
class sample:
driver = None
def dclose():
global driver # does it require #1
driver.close()
sys.exit(0)
def clickLink():
global driver # does it require #2
try:
driver.find_element_by_link_text('about').click()
except:
print "Error: link not found"
def main():
global driver # does it require #3
driver = webBase.Driver(URL) # another class where i have initalised webdriver with some logger activity.
clickLink()
dclose()
其全球任務是必須分配全局後
class sample:
driver = None
def dclose():
driver.close()
sys.exit(0)
def clickLink():
try:
driver.find_element_by_link_text('about').click()
except:
print "Error: link not found"
def main():
global driver
driver = webBase.Driver(URL) # another class where i have initalised webdriver with some logger activity.
clickLink()
dclose()
現在?
每個功能時,你沒有抱怨將'driver'聲明爲全局的,並且你不確定哪些是需要的? –
我的程序中有8個函數用於檢測某個元素並執行一些數據庫活動。我通過在每個函數中聲明全局賦值來解決問題。但是我的問題是「這是一個正確的方案嗎?或者我所做的只是一個破解?」 –
如果這是你的問題,那麼將問題置於實際問題上會很好。 –