python10 動態傳參

2021-09-24 10:38:07 字數 2443 閱讀 3215

動態傳參

def chi(*food): #可以傳入任意的位置引數,*是任意,food就是形參的名字

print(「我要吃」,food)  #動態引數接收到的是tuple型別的資料

chi(「蓋澆飯」,「辣條」,「麵條」)#列印的結果是我要吃(『蓋澆飯』,「辣條」,「麵條」)

順序:先寫位置引數,再寫動態引數*,最後是預設值引數,如果想修改預設值引數,需要用關鍵字引數來修改,例如d=「qwq」

def func(a,b,c,*args,d=5):

print(a,b,c,d,args)

func(1,2,3,4,5,6,7)# 1 2 3 5 (4,5,6,7)

func(1,2,3,4,5,6,7,d="qwq」)# 1 2 3 qwq (4,5,6,7)

#寫函式,給函式傳遞任意個整數,返回這些數的和。

def  he(*n):

sum = 0

for el in n:

sum += el

return sum

print(he(1,2,3,4,5))

#動態接收關鍵字引數

* 位置引數

**關鍵字引數   #:其中有兩個*,乙個*是key 乙個*是value

def func(**food):  # **food是動態接收關鍵字引數

print(food)  #接收到的是字典

func(goodfood=「蓋澆飯」,badfood=「辣條」)#

終極順序:位置引數》*args>預設值引數》**kwargs

命名空間

在python直譯器開始執行之後,就會在記憶體中開闢乙個空間,每當遇到乙個變數的時候,就把變數名和值之間的關係記錄下來,但是當遇到函式定義的時候,直譯器只是把函式名讀入記憶體,表示這個函式存在了,至於函式內部的變數和邏輯,直譯器是不關心的,也就是說一開始的時候函式只是載入進來,僅此而已,只有當函式被呼叫和訪問的時候,直譯器才會根據函式內部宣告的變數來進行開闢變數的內部空間,隨著函式執行完畢,這些函式內部變數占用的空間也會隨著函式執行完畢而被清空。

內建命名空間:存放python直譯器為我們提供的名字,list,tuple,str,int這些都是內建命名空間。

全域性命名空間:我們直接在py檔案中,函式外宣告的變數都屬於全域性命名空間。

區域性命名空間:在函式中宣告的變數會放在區域性命名空間

載入順序:內建命名空間,全域性命名空間,區域性命名空間(函式被執行的時候)

取值順序:區域性命名空間,全域性命名空間,內建命名空間

a = 10

def func():

a = 20

print(a)

func()  #列印的結果是a=20,就近原則,如果區域性變數中a=20取消,那麼a=10

作用域:作用域就是作用範圍,按照生效範圍來看 分為全域性作用域和區域性作用域

全域性作用域:包含內建命名空間和全域性命名空間。在整個檔案得任何位置都可以使用(遵循從上到下逐行執行)。

區域性作用域:在函式內部可以使用。

作用域命名空間

全域性作用域:全域性命名空間+內建命名空間

區域性作用域:區域性命名空間

我們可以通過globals()函式來檢視全域性作用域中的內容,也可以通過locals()來檢視區域性作用域中的變數和函式資訊。

函式的巢狀

1.只要遇見了(),就是函式的呼叫,如果沒有()就不是函式的呼叫。

定義python函式時,如果沒有return語句,則預設返回空值none

def chi():

print(「我要吃」)

print(chi)   #結果是0x000012 記憶體位址

print(chi()) #結果是 我要吃  none

global

a = 10

def func():

global a   #把外面全域性中的a引入,表示a不在是區域性變數,而變成了全域性變數

a = a + 10 #全域性中的a變成20

print(a)

func()

print(a)   #20

nonlocal找區域性作用域中外層 離他最近的那個變數引入進來

python 10 形參角度 命名空間 載入順序

如何在工作中不讓別人看出你是培訓出來的?形參角度 命名空間。全域性命名空間,區域性.載入順序,取值順序。作用域。函式的巢狀 高階函式 內建函式 globals locals 關鍵字 nonlocal global。函式的引數 如何在工作中不讓別人看出你是培訓出來的?形參角度 命名空間。全域性命名空間...

Python 10 操作檔案

開啟檔案,得到檔案的物件 控制代碼 通過檔案物件 控制代碼 操作檔案 儲存並關閉檔案 在 python中使用open 函式來操作檔案。開啟檔案,得到檔案控制代碼,並把乙個變數名分配給這個檔案控制代碼 變數名 open 檔案路徑 開啟模式 encoding 字元編碼 f obj open a.txt ...

自學python 10 函式04

裝飾器 閉包的公升級,在開發上的應用例如判斷使用者的登入狀態。修改豐富已經寫好的函式。回顧 以函式作為引數 也是裝飾器的基礎 def test print test t testt test print f print test 下面介紹裝飾器 特點 1.函式a是作為引數出現的。2.有閉包的特點出現...