動態引數,作用域,global和nonlocal

2021-10-23 13:02:31 字數 474 閱讀 7922

1,動態引數

位置引數的動態引數: args

關鍵字引數的動態引數 : **kwargs

順序:位置,args,預設值,**kwargs

在形參上聚合, **聚合

在實參上打散, **打散

2,命名空間和作用域

命名空間:

1. 內建命名空間: python解釋內部執行時的變數函式

2. 全域性命名空間: 我們在py檔案中直接宣告出來的變數,函式

3. 區域性命名空間: 在函式內部宣告的變數和函式.

作用域:

1.全域性作用域:內建+全域性

2.區域性作用域:區域性

globals() 檢視全域性作用域中的名字

locals() 檢視當前作用域中的名字

3,global和nonloca

global: 把全域性變數拿到區域性來用.

nonlocal: 把離他最近的一層的變數拿過來.不會找全域性

global和nonlocal作用域

python中的變數引用順序為 當前作用域區域性變數 外層作用域變數 當前模組中的全域性變數 python內建變數 global關鍵字的作用就是用來在函式或者其他區域性作用域中使用全域性變數 例如 a 0 這裡報錯原因是因為剛開始在第一行就定義了乙個全域性變數a 而之後我們嘗試修改了這個a的值,此時...

詞法作用域和動態作用域

作用域是指程式源 中定義變數的區域。它規定了如何查詢變數,也是就確定當前執行 對變數的訪問許可權。js 採用了詞法作用域 lexical scoping 也就是靜態作用域。js 採用的詞法作用域是靜態作用域,因此函式的作用域在函式定義的時候就決定了。與靜態作用域相對的是動態作用域,函式的作用域是在函...

Python中的作用域和global用法

如果想在乙個函式中要為乙個定義在函式外的 變數 賦值,也即是為全域性變數賦值。我們使用global關鍵字。如果不適用global,就會報錯。main方法是個例外 在函式內部修改全域性變數,報錯 coding utf 8 age 18def add age age 1print format age ...