這篇文章主要為大家展示了“python函數參數、名稱空間以及函數嵌套的示例分析”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“python函數參數、名稱空間以及函數嵌套的示例分析”這篇文章吧。
注意:
動態參數與位置參數的關系
默認參數和動態參數的關系
小結: 順序: 位置參數, 動態參數*, 默認值參數
在python中可以動態的位置參數,但是*這種情況只能接收位置參數無法接收關鍵字參數.
可以使用**來接收動態關鍵字參數
實例:
注意:關鍵字參數與未知參數關系
所以關鍵字參數必須在位置參數后?面. 由于實參是這個順序. 所以形參接收的時候也是這個順序.
也就是說位置參數必須在關鍵字參數前面. 動態接收關鍵字參數也要在后面
最終順序(*):位置參數 > *args > 默認值參數 > **kwargs
實例:
在實參位置上給一個序列,列表,可迭代對象前?面加個表示把這個序列按順序打散.
在形參的位置上的表?示把接收到的參數組合成?一個元組
如果是?一個字典, 那么也可以打散. 不過需要?用兩個*
在實參位置: 打散
我們給存放名字和值的關系的空間起?一個名字叫:命名空間. 我們的變量量在存儲的時候就是存儲在這片空間中的.
命名空間分類:
全局命名空間–> 我們直接在py
?文件中, 函數外聲明的變量都屬于全局命名空間
局部命名空間–> 在函數中聲明的變量會放在局部命名空間
內置命名空間–> 存放python
解釋器為我們提供的名字, list
, tuple
, str
, int
這些都是內置命名空間
加載順序:
內置命名空間
全局命名空間
局部命名空間(函數被執行的時候)
取值順序:
局部命名空間
全局命名空間
內置命名空間
作用域: 作用域就是作用范圍, 按照生效范圍來看分為 全局作用域和局部作用域
全局作用域: 包含內置命名空間和全局命名空間. 在整個文件的任何位置都可以使用(遵循從上到下逐行執行).
局部作?用域: 在函數內部可以使?.
作用域命名空間:
全局作用域: 全局命名空間 + 內置命名空間
局部作用域: 局部命名空間
可以通過globals()
函數來查看全局作?用域中的內容, 也可以通過locals()
來查看局部作用域中的變量量和函數信息
只要遇?見了了()就是函數的調用. 如果沒有()就不是函數的調?
函數的執行順序
global:
首先我們寫這樣一個代碼, 首先在全局聲一個變量, 然后再局部調用這個變量量, 并改變這個變量的值
例1:
例2:
nonlocal
表示在局部作用域中, 調用父級命名空間中的變量
以上是“python函數參數、名稱空間以及函數嵌套的示例分析”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。