[英]python - del statement executing early
我是一名自學成才的程序員,沒有接受過正規培訓,如果這是一個愚蠢的問題,請提前原諒我。
在Python編程時我發現了一些奇怪的東西:
from someModule import someClass
def someFunction():
someInstance = someClass()
print "foo"
del someClass
someFunction()
這會立即死於未綁定的局部變量錯誤:
UnboundLocalError: local variable 'someClass' referenced before assignment
注釋掉刪除語句可以解決問題:
...
#del someClass
...
它返回:
foo
那么,2個問題:
1)del語句位於函數的末尾。 為什么在開始之前調用它?
2)為什么它給我一個“未綁定的局部變量”錯誤? 它不應該是一個“未綁定的全局變量”錯誤嗎?
del
語句隱式地為整個函數呈現someClass
本地名稱,因此該行
someInstance = someClass()
嘗試查找本地名稱someClass
,此時未定義。 del
語句不會提前執行 - 名稱從一開始就沒有定義。
如果你真的想做這樣的事情(提示:你沒有),你必須聲明名稱global
:
def someFunction():
global someClass
...
del someClass
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.