1、上層函式不能直接使用其巢狀函式的變數;
deffunc1(x, y):
z = x +y
deffunc2():
m = 3z +=m
return
zprint(func1(1, 2))
#報錯:name 'm' is not defined
2、上層函式中的變數可以在其巢狀函式內直接使用:
deffunc1(x, y):
z = x +y
deffunc2():
m = 3 +z
return
m
return
func2()
print(func1(1, 2))
#輸出:6
3、巢狀函式中,不能即使用上層函式變數,又有自己的變數與該上層變數同名:
deffunc1(x, y):
z = x +y
deffunc2():
# m=3 + z:z 是上層函式的變數m = 3 +z
# z=m ** 2:z 是func2()函式自身的變數z = m ** 2
return
z
return
func2()
print(func1(1, 2))
#報錯:local variable 'z' referenced before assignment
# 提前宣告該變數非本地變數(系統會自動從上層函式中查詢該變數):nonlocal z
# **中的變數 z 均為func1()函式的變數
4、上層函式的形參(x,y),可以在其巢狀函式中直接使用;
deffunc1(x, y):
deffunc2():
m = 3 +x
z = m +y
return
z
return
func2()
print(func1(1, 2))
#輸出:6
5、上層函式的形參(x,y),可以作為其巢狀函式的形參:形參的名字必須相同
deffunc1(x, y):
deffunc2(x, y):
m = 3 +x
z = m +y
return
z
return
func2(x, y)
print(func1(1, 2))
#輸出:6
Python 包裝函式中變數的使用
最近python學習到了包裝函式,說真的,這部分內容一開始真的有點難理解。遇到一道很簡單的練習題 附上 利用閉包返回乙個計數器函式,每次呼叫它返回遞增整數 def createcounter ans 0 def counter ans 0 1 return ans 0 return counter一...
Python 函式的變數
函式的變數分為區域性變數和全域性變數 python中的任何變數都有自己特定的作用域 在函式中定義的變數一般只能在該函式內部使用,這些只在程式的特定部分使用的變數叫做區域性變數 在乙個檔案頂部定義的變數可以供檔案中任何函式呼叫,這些為整個程式所使用的變數叫做全域性變數 呼叫規則 全域性變數可以在函式內...
python3 函式即變數的使用
函式即變數的意思是函式被使用時後面不用 類似變數的使用,具體如下面的示例 def say name print name hi say hi 你好!1 defadd 2print 新增商品 3def view 4print 檢視商品 5def delete 6print 刪除商品 78 choice...