簡體   English   中英

python - del語句早期執行

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM