国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

local variable 'var1' referenced before

Aklman / 2201人閱讀

摘要:起初是群里一個哥們這句話報錯。我竟然沒看懂代碼如下其實這個代碼不能很好的反應問題。來看以下兩個我一開始沒理解這個問題。看到和粗略的理解成不能夠在閉包函數中改變上層函數的變量。實際上是,如果一個變量被賦值,那么會認為其為局部變量。

起初是群里一個哥們這句話報錯。
后來之前的一個實習生,給出了鏈接來解釋這個問題。 我竟然沒看懂....

http://stackoverflow.com/questions/89347...

代碼如下:

def foo1(tmp =None):

    def foo():
        if tmp:
            print tmp
        else :
            tmp = None

    return foo()

其實這個代碼不能很好的反應問題。來看以下兩個case

def foo1(var1 =None):

    def foo():
        var1 = 1 + 1
        print var1
    return foo()


def foo3(tmp=None):
    def foo():
        c = tmp
        tmp = 1 + 1

    return foo()

我一開始沒理解這個問題。看到assign variable 和access variable 粗略的理解成不能夠在閉包函數中改變上層函數的變量。但... 根本不是這回事。

實際上是, 如果一個變量被賦值,那么python會認為其為局部變量。局部變量只會在當前函數空間來找到變量(就是foo函數內),所以可以看到,在foo3中,解析器看到tmp = 1+1 就認為 tmp 為局部變量,然后想起來之前好像用過tmp,c= tmp ,發現tmp 在這句之前沒有被定義所以報錯了。

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/37853.html

相關文章

  • ReferenceError: Cannot access 'X' before

    摘要:中文文檔中的變量提升,是指在聲明變量的代碼執行之前,可以進行初始化和使用而不是指在創建詞法環境階段是否會創建對應的標識符。 問題背景 今天在 chrome devtools 中運行以下代碼: function fn (name){ if (typeof name === undefined){ console.log(name:, name) let name ...

    Elle 評論0 收藏0
  • Useful APIs that you probably don't notice

    摘要:結果 Date Get the number of days in a month The 0th day of next month is the last day of the current month. function daysInMonth(year, month) { let date = new Date(year, month + 1, 0); ret...

    崔曉明 評論0 收藏0
  • [譯]Understanding javascript's 'undefined

    摘要:一個表示編譯器檢測到一個無效的引用值。在實際情況中,往往是在獲取一個未被賦值的引用時被拋出。任何一個函數上下文都有一個被稱為活動對象的變量對象。沒有找到的話,就會認為引用名沒有基礎值并拋出的錯誤。下沒有下的屬性僅存在于被啟動的情況下。 和其他語言相比,javascript中的對于undefined的理解還是有點讓人困惑的。特別是試著理解ReferenceErrors錯誤(x is no...

    galaxy_robot 評論0 收藏0
  • python3 logging 'ascii' codec can't

    摘要:環境問題發現最近剛從換到下搬磚,發現在跑的好好的代碼,在下終端老是報錯還是編碼錯誤注冊失敗坦白說,看到這個錯誤好無奈。既然能在跑,換到就出錯,那多半是環境問題了,然后我就開始了我的調試追蹤之旅了跟蹤調試先前調試都是一晃而過,只看結果。 環境:mac 10.12 python3 django 1.10 問題發現 最近剛從arch 換到 mac下搬磚, 發現在arch跑的好好的代碼,...

    txgcwm 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<