函式的引數
一、形參和實參
形參:定義階段才有的形參,形式引數,沒有什麼用,但是具有意義,只是占個位置,方便呼叫。
實參:呼叫階段才有的實參,實際的引數,具有具體的值
1.1形參
在函式定義的階段括號內定義的引數,稱之為形式引數,簡稱形參,本質就是變數名。
def func(x,y):#定義階段才有的形參
print(x)
print(y)
print(func(1,2)) #呼叫階段才有的實參
#輸出:
none
1.2實參
在函式呼叫階段括號內傳入的引數,稱之為實際引數,簡稱實參,本質就是變數的值。
二、位置引數
位置形參:乙個乙個的寫形參,就叫位置形參
位置實參:乙個乙個的寫形參,就叫位置實參
位置形參和位置實參要從左到右一一對應。
2.1位置形參
在函式定義階段,按照從左到右的順序依次定義的形參,稱之為位置引數。
def func(x,y):
print(x)
print(y)
print(func(1,2))
注意:按照位置定義的引數都必須被傳值,多乙個不行少乙個也不行。
2.2位置實參
在函式呼叫階段,按照從左到右的順序依次定義的實參,稱之為位置實參。
fun(1,2)
特點:按照位置為對應的形參依次傳值。
三、關鍵字實參
在呼叫函式時,按照key=value的形式為指定的引數傳值,稱為關鍵之實參。
呼叫的時候,可以打破位置實參必須和位置形參一一對應的傳值的規定
def func(x,y):
print(x)
print(y)
print(func(x=1,y=2))
#輸出:
none
特點:可以打破位置的限制,但仍能為指定的形參賦值。
注意:可以混用位置實參和關鍵字實參,但是位置實參必須在關鍵字實參的左邊。
可以混用位置實參和關鍵字實參,但是不能對乙個形參重複賦值。
def func(x,y):
print(x)
print(y)
print(func(1,2))
print(func(x, y=2))# 會報錯nameerror: name 'x' is not defined
print(func(y=2,x))#會報錯syntaxerror: positional argument follows keyword argument
print(func(x,x=1))#報錯nameerror: name 'x' is not defined
#輸出:
none
四、預設引數
在定義階段,就已經被賦值
預設形參必須放在位置形參的後面
def func(x,y=10):
print(x)
print(y)
func(2)
#輸出:
fun(1,2)
#輸出:
特點:在定義階段就已經被賦值,意味著在呼叫的時候可以不用為其賦值。
注意:位置形參必須放在預設形參的左邊。
預設形參的值只在定義階段賦值一次,也就是說預設引數的值在函式定義階段就已經固定了。
m = 10
def foo(x=m):
print(x)
m=111
print(foo())
#輸出:
none
預設引數的值通常應該是不可變型別
def register(name,hobby,hobby_list=):
print(name,hobby)
print(name,hobby_list)
register('chen','read')
register('python','zuopao')
register('shui','pioa')
#輸出:
chen read
chen ['read']
python zuopao
python ['read', 'zuopao']
shui pioa
shui ['read', 'zuopao', 'pioa']
def register(name,hobby,hobby_list=none):
if hobby_list is none:
hobby_list =
print(name,hobby)
print(name,hobby_list)
register('chen','read')
register('python','zuopao')
register('shui','pioa')
#輸出:
chen read
chen ['read']
python zuopao
python ['zuopao']
shui pioa
shui ['pioa']
五、總結
實參的應用:取決於個人的習慣
形參的作用:
大多數情況的呼叫值一樣,就應該將該引數定義成位置形參。
大多數情況的呼叫值一樣,就應該將該引數定義成預設形參。
python引數函式 Python函式引數總結
coding utf 8 整理一下python函式的各種引數型別 位置引數 呼叫函式時,傳入的兩個值按照位置順序依次賦給引數 def power x,n s 1 while n 0 n n 1 s s x return s print power 5,2 預設引數 簡化函式的呼叫 def power...
python 引數 Python函式 引數
python中將函式作為引數,區分將引數直接寫成函式名和函式名 的區別。def fun1 fun print print print fun 執行fun1 fun4 時,fun為函式fun3的返回值x print type fun type fun type fun fun 執行fun1 fun4 ...
python 函式的引數
位置引數 def power x,n s 1 while n 0 n n 1 s s xreturn s 以上的函式旨在於實現計算x的n次方 預設引數 def power x,n 2 s 1 while n 0 n n 1 s s x return s以上函式中,預設n 2,這樣情況下,不需要每次輸...