因為最后的那句return nested。
創(chuàng)新互聯(lián)公司服務(wù)項目包括扎魯特旗網(wǎng)站建設(shè)、扎魯特旗網(wǎng)站制作、扎魯特旗網(wǎng)頁制作以及扎魯特旗網(wǎng)絡(luò)營銷策劃等。多年來,我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢、行業(yè)經(jīng)驗、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,扎魯特旗網(wǎng)站推廣取得了明顯的社會效益與經(jīng)濟效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到扎魯特旗省份的部分城市,未來相信會繼續(xù)擴大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!
tester()()會自動調(diào)用它的返回值,而此時的返回值為nested,即def nested()這個函數(shù),所以自然而然執(zhí)行到了里面的print語句。
你可以試試把最后那就return nested改成其他的如return nestedxxx,再tester()()時就會報錯了。
另外,在python里對于方法ester和nested是沒有tester().nested()這種用法的,所以這樣輸入肯定報錯的,如果ester和nested是類(class)的話才有這種寫法。
希望對你有所幫助~~
global
python 函數(shù)嵌套和nonlocal關(guān)鍵字
只待風(fēng)起
原創(chuàng)
關(guān)注
3點贊·7531人閱讀
python函數(shù)可以嵌套使用,使用也比較簡單,舉個栗子:
def outer():
print("outer")
def inner():
print("inner")
inner()
outer()
## 運行結(jié)果:
outer
inner
復(fù)制
nonlocal關(guān)鍵字:
與global關(guān)鍵字有點相似,可以對比著理解。nonlocal關(guān)鍵字只能作用域局部變量,且始終找離當(dāng)前最近的上層局部作用域中的變量??蠢踝樱?/p>
a = 1
def outer():
nonlocal a
a = 2
outer()
print(a)
復(fù)制
結(jié)果:報錯? SyntaxError: no binding for nonlocal 'a' found,
原因分析:nonlocal關(guān)鍵字是能作用域局部變量,當(dāng)使用nonlocal聲明變量 a 時,就會往上最近一層局部作用域?qū)ふ揖植孔兞?a ,結(jié)果沒找著,報錯。
a = 1
def outer():
global a
a = 2
def inner():
nonlocal a
a = 3
inner()
print(a)
outer()
print(a)
復(fù)制
結(jié)果:報錯? SyntaxError: no binding for nonlocal 'a' found,
原因分析:當(dāng)使用nonlocal聲明變量 a 時,就會往上最近一層局部作用域?qū)ふ揖植孔兞?a ,此時外層局部作用域雖然能找到變量a,但是這找到的 這個a 已經(jīng)被global聲明為全局變量了,所以報錯。
a = 1
def outer():
a = 2
def inner():
nonlocal a
a = 3
def inner2():
print(a)
inner2()
print(a)
inner()
print(a)
outer()
print(a)
## 運行結(jié)果:
3
3
3
1
應(yīng)該是用大括號的 # create a mapping of state to abbreviationstates = { 'Oregon': 'OR', 'Florida': 'FL', 'California': 'CA', 'New York': 'NY', 'Michigan': 'MI'}# create a basic set of states and some cities in themcities = { 'CA': 'San Francisco', 'MI': 'Detroit', 'FL': 'Jacksonville'}
分享題目:python嵌套函數(shù)報錯 python函數(shù)里面嵌套定義函數(shù)
地址分享:http://jinyejixie.com/article20/dosgcco.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站營銷、網(wǎng)站導(dǎo)航、面包屑導(dǎo)航、網(wǎng)站設(shè)計公司、網(wǎng)站制作、網(wǎng)站設(shè)計
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)