python 基礎篇 10 函數進階

來源:互聯網
上載者:User

標籤:理解   記錄   傳參   war   執行   遇到   載入   image   alt   

本節主要內容:
1. 函數參數--動態傳參
2. 名稱空間, 局部名稱空間, 全域名稱空間, 作?域, 載入順序.
3. 函數的嵌套
4. gloabal, nonlocal關鍵字

?. 函數參數--動態傳參
之前我們說過了傳參, 如果我們需要給?個函數傳參, ?參數?是不確定的. 或者我給?個
函數傳很多參數, 我的形參就要寫很多, 很?煩, 怎麼辦呢. 我們可以考慮使?動態參數.
形參的第三種: 動態參數
動態參數分成兩種 :::

1--->>>動態接收位置參數

首先,先回顧依稀位置參數:

注意:動態傳參的過程中,動態參數必須在位置參數後面

 錯誤執行個體:

預設值參數:

這時候,我們發現,如果不給出關鍵字傳參,所有的預設值參數都是生效的

 總結:參數順序---->>>>位置參數-----動態參數------預設值參數

2.動態接收關鍵字參數:

最終順序:

                位置參數------>*args-------->預設值參數--------------->**kwargs

 

 

二:命名空間:

在python解譯器開始執?之後, 就會在記憶體中開闢?個空間, 每當遇到?個變數的時候, 就
把變數名和值之間的關聯性記錄下來, 但是當遇到函數定義的時候, 解譯器只是把函數名讀入內
存, 表?這個函數存在了, ?於函數內部的變數和邏輯, 解譯器是不關?的. 也就是說?開始
的時候函數只是載入進來, 僅此?已, 只有當函數被調?和訪問的時候, 解譯器才會根據函數
內部聲明的變數來進?開闢變數的內部空間. 隨著函數執?完畢, 這些函數內部變數占?的空
間也會隨著函數執?完畢?被清空.

載入順序:

內建命名空間-------->>>>全域命名空間--------->>>>>局部命名空間(函數被執行的時候)

 取值順序:

局部命名空間-------->>>>>>全域命名空間---------->>>>內建命名空間

 

作?域: 作?域就是作?範圍, 按照?效範圍來看分為 全域作?域和局部作?域
全域作?域: 包含內建命名空間和全域命名空間. 在整個?件的任何位置都可以使?(遵循
從上到下逐?執?).     
局部作?域: 在函數內部可以使?.

作?網域命名空間:
1. 全域作?域: 全域命名空間 + 內建命名空間
2. 局部作?域: 局部命名空間

 

三,函數的嵌套

 1. 只要遇?了()就是函數的調?. 如果沒有()就不是函數的調?
2. 函數的執?順序

 

四. 關鍵字global和nonlocal
?先我們寫這樣?個代碼, ?先在全域聲明?個變數, 然後再局部調?這個變數, 並改變這
個變數的值

nonlocal 表?在局部作?域中, 調??級命名空間中的變數.

這個global和nonlocal比較繞   需要多理解一下

 

python 基礎篇 10 函數進階

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.