日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > python >内容正文

python

python函数内的作用域包括什么_python菜鸟求问关于嵌套函数中作用域范围应该怎么理解?...

發(fā)布時(shí)間:2025/3/12 python 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python函数内的作用域包括什么_python菜鸟求问关于嵌套函数中作用域范围应该怎么理解?... 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

直接上代碼

def l(list):

def d():

return list

return d

#運(yùn)行

l = l([1,2,3,4])

print l()

這個(gè)情況是正常的。

問(wèn)題在于d函數(shù)為什么不能傳入list,然后我現(xiàn)在嘗試了一下這個(gè)代碼:

def l(list):

def d(list):

return list

return d

#運(yùn)行

l = l([1,2,3,4])

#提示錯(cuò)誤

print l()

#正常

print l([1,3,5,7,9])

請(qǐng)問(wèn)這個(gè)怎么解釋呢?

我個(gè)人理解的是,類似于“繼承”的情況,當(dāng)d函數(shù)沒(méi)有參數(shù)傳入的情況上,基于父函數(shù)的參數(shù),當(dāng)他需要傳參了,就覆蓋了???

運(yùn)行

l = l([1,2,3,4])

提示錯(cuò)誤

print l() 這個(gè)錯(cuò)誤是你沒(méi)有傳參數(shù)。

樓主需要理解的是: 作用域

case 1: 函數(shù)l返回函數(shù)d的地址,d只做為返回值,并沒(méi)有被調(diào)用執(zhí)行.In [3]: print(l([1,2,3,4]))

.d at 0x7f49243ece18>

參數(shù)list傳入l,作用域在函數(shù)l內(nèi),可以被d訪問(wèn)(注意參數(shù)是傳給l的,不是d).

如果要訪問(wèn)list.如下調(diào)用:

`In [2]: print(l([1,2,3,4])())

[1, 2, 3, 4]相當(dāng)于:In [5]: d = l([1,2,3,4]) # 返回d的地址

In [6]: d()          #調(diào)用d,d沒(méi)有參數(shù),不需要傳參

Out[6]: [1, 2, 3, 4]case 2: 同樣l返回d的地址,但此時(shí)返回的函數(shù)d需要傳參(注意l的參數(shù)list和d的參數(shù)list是不一樣的).In [8]: d = l([1,2,3,4])  # 返回函數(shù)d的地址,參數(shù)list此時(shí)并沒(méi)有用到

In [9]: d([5,6,7,8])    # 需要參數(shù)的函數(shù)d

Out[9]: [5, 6, 7, 8]

原有代碼中:def l(list):

def d(list):

return list

return d #

#運(yùn)行

l = l([1,2,3,4])

#提示錯(cuò)誤

print l() #

#正常

print l([1,3,5,7,9]) #

下面的用于說(shuō)明:你原來(lái)代碼中的 l 指向不同:def l(list):

def d(list):

return list

return d

#運(yùn)行

print 'id(l) is {}'.format(id(l))

l = l([1,2,3,4])

#提示錯(cuò)誤

# print l()

#正常

print 'id(l) is {}'.format(id(l))

print l([1,3,5,7,9])

代碼寫成這樣你可能就理解了:def l(_list):

def d(_l):

return _list + _l

return d

a = l([1,2,3,4])

print a([1])

最后說(shuō)兩點(diǎn):

玩蛇網(wǎng)文章,轉(zhuǎn)載請(qǐng)注明出處和文章網(wǎng)址:https://www.iplaypy.com/wenda/wd13874.html

相關(guān)文章 Recommend

總結(jié)

以上是生活随笔為你收集整理的python函数内的作用域包括什么_python菜鸟求问关于嵌套函数中作用域范围应该怎么理解?...的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。