動態傳參
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.有閉包的特點出現...