成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專欄INFORMATION COLUMN

local variable 'var1' referenced before

Aklman / 2268人閱讀

摘要:起初是群里一個(gè)哥們這句話報(bào)錯(cuò)。我竟然沒(méi)看懂代碼如下其實(shí)這個(gè)代碼不能很好的反應(yīng)問(wèn)題。來(lái)看以下兩個(gè)我一開(kāi)始沒(méi)理解這個(gè)問(wèn)題。看到和粗略的理解成不能夠在閉包函數(shù)中改變上層函數(shù)的變量。實(shí)際上是,如果一個(gè)變量被賦值,那么會(huì)認(rèn)為其為局部變量。

起初是群里一個(gè)哥們這句話報(bào)錯(cuò)。
后來(lái)之前的一個(gè)實(shí)習(xí)生,給出了鏈接來(lái)解釋這個(gè)問(wèn)題。 我竟然沒(méi)看懂....

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

代碼如下:

def foo1(tmp =None):

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

    return foo()

其實(shí)這個(gè)代碼不能很好的反應(yīng)問(wèn)題。來(lái)看以下兩個(gè)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()

我一開(kāi)始沒(méi)理解這個(gè)問(wèn)題??吹絘ssign variable 和access variable 粗略的理解成不能夠在閉包函數(shù)中改變上層函數(shù)的變量。但... 根本不是這回事。

實(shí)際上是, 如果一個(gè)變量被賦值,那么python會(huì)認(rèn)為其為局部變量。局部變量只會(huì)在當(dāng)前函數(shù)空間來(lái)找到變量(就是foo函數(shù)內(nèi)),所以可以看到,在foo3中,解析器看到tmp = 1+1 就認(rèn)為 tmp 為局部變量,然后想起來(lái)之前好像用過(guò)tmp,c= tmp ,發(fā)現(xiàn)tmp 在這句之前沒(méi)有被定義所以報(bào)錯(cuò)了。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/37853.html

相關(guān)文章

  • ReferenceError: Cannot access 'X' before

    摘要:中文文檔中的變量提升,是指在聲明變量的代碼執(zhí)行之前,可以進(jìn)行初始化和使用而不是指在創(chuàng)建詞法環(huán)境階段是否會(huì)創(chuàng)建對(duì)應(yīng)的標(biāo)識(shí)符。 問(wèn)題背景 今天在 chrome devtools 中運(yùn)行以下代碼: function fn (name){ if (typeof name === undefined){ console.log(name:, name) let name ...

    Elle 評(píng)論0 收藏0
  • Useful APIs that you probably don't notice

    摘要:結(jié)果 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...

    崔曉明 評(píng)論0 收藏0
  • [譯]Understanding javascript's 'undefined

    摘要:一個(gè)表示編譯器檢測(cè)到一個(gè)無(wú)效的引用值。在實(shí)際情況中,往往是在獲取一個(gè)未被賦值的引用時(shí)被拋出。任何一個(gè)函數(shù)上下文都有一個(gè)被稱為活動(dòng)對(duì)象的變量對(duì)象。沒(méi)有找到的話,就會(huì)認(rèn)為引用名沒(méi)有基礎(chǔ)值并拋出的錯(cuò)誤。下沒(méi)有下的屬性僅存在于被啟動(dòng)的情況下。 和其他語(yǔ)言相比,javascript中的對(duì)于undefined的理解還是有點(diǎn)讓人困惑的。特別是試著理解ReferenceErrors錯(cuò)誤(x is no...

    galaxy_robot 評(píng)論0 收藏0
  • python3 logging 'ascii' codec can't

    摘要:環(huán)境問(wèn)題發(fā)現(xiàn)最近剛從換到下搬磚,發(fā)現(xiàn)在跑的好好的代碼,在下終端老是報(bào)錯(cuò)還是編碼錯(cuò)誤注冊(cè)失敗坦白說(shuō),看到這個(gè)錯(cuò)誤好無(wú)奈。既然能在跑,換到就出錯(cuò),那多半是環(huán)境問(wèn)題了,然后我就開(kāi)始了我的調(diào)試追蹤之旅了跟蹤調(diào)試先前調(diào)試都是一晃而過(guò),只看結(jié)果。 環(huán)境:mac 10.12 python3 django 1.10 問(wèn)題發(fā)現(xiàn) 最近剛從arch 換到 mac下搬磚, 發(fā)現(xiàn)在arch跑的好好的代碼,...

    txgcwm 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

閱讀需要支付1元查看
<