python 函式作用域小記

2021-08-11 07:28:35 字數 874 閱讀 8613

- 函式內部的變數只作用在函式內部,外部是不能呼叫的。

- python 中有作用域鏈,變數會由內向外找,先在自己的作用域找,自己沒有再向上級找,直到找不到報錯。

- 若在自己的作用域找到了變數,而在賦值之前呼叫則程式會報錯

#1

name = 'milton'

def f1():

print(name)

f1()

程式會輸出 >>>milton

f1 函式,變數 name 首先在函式內部找,沒有找到變數的賦值,則向函式外部找,找到name = 'milton' ,列印出 name 的值。

#2

name = 'milton'

def f1():

print(name)

f1()

程式會輸出 >>>long

f1 函式,變數 name 還是先從函式內部找,找到 name = 'long',故就不再向外找 name 的值。 #3

name ='milton'

def f1():

print(name)

name = 'long'

print(name)

f1()

程式會報錯,因為第一句 print(name),函式先從函式內部到變數 name ,但是 print 出現在了 name 的賦值之前,故程式報錯:unboundlocalerror: local variable 'name' referenced before assignment (本地變數(區域性變數)在宣告之前呼叫)

Python 函式作用域

python中變數作用域分4種情況 x max 1,6 max為系統變數,它的作用域為python的所有模組 y 1 y為全域性變數,它的作用域為當前模組 defouter i 3 i的作用域為當前函式,包括巢狀函式 definner count 2 count為區域性變數,作用域只在當前函式有效函...

python學習 函式 作用域

定義函式 def do nothing pass 呼叫函式 do nothing none 是python中的乙個特殊的值,它和false,空值是有區別的。注意函式引數的傳入。使用 收集位置引數 當引數被用在函式內部時,星號將一組可變數量的位置引數集合成引數值的元組。def print args a...

python中函式作用域

在python中,乙個函式就是乙個作用域 name xiaoming defchange name name sthu print 在change name裡的name name change name 呼叫函式 print 在外面的name name 執行結果如下 在change name裡的na...