數學定義:python函式定義與作用y=f(x),y是x的函式,x是自變數。y=f(x0,x1,x2,…,xn)
def 函式名(引數列表):
函式體(**塊)
[return 返回值]--
----
----
----
----
----
----
deffn
(x,y)
: sumnumber = x + y
return sumnumber
函式引數
函式在定義時要約定好形式引數,呼叫時也提供足夠的實際引數,一般來說,形參和實參個數要一致(可變引數除外);
傳參方式
1.位置傳參
定義時def f(x,y,z),呼叫使用f(1,4,6),按照引數定義順序傳入實參;
2.關鍵字傳參
定義時def f(x,y,z),呼叫時用f(x=1,y=2,z=3),使用形參的名字來傳入實參的方式,如果使用了形參名字,那麼傳參順序可以和定義順序不同
要求位置引數必須必須在關鍵字引數之前傳入,位置引數是按位置對應的
def
f(x,y,z)
:pass
f(z=
none
,y=10
,x=[0]
)f((1
,),z=6
,y=2.1
)f(y=
2,z=4,
1)#錯誤傳參!
引數預設值
預設值也稱為預設值,可在函式定義時,為形參增加乙個預設值,其作用:
def
fn(x=
1,y=2)
:return x+y
可變引數
需求:寫乙個函式,可以對多個數累加求和
def
sumnumber
(iterable)
: sumnumber =
0for i in iterable:
sumnumber += i
return sumnumber
sumnumber([1
,2,3
])sumnumber(
range(4
))
上述方法傳入可迭代物件,並累加每乙個元素,也可以使用可變引數完成上面的函式:
可變位置引數
def
sumnumber
(*nums)
: sumnumber =
0for i in nums:
sumnumber += i
return sumnumber
sumnumber(1,
2,3)
可變關鍵字引數def
showconfig
(**kwargs)
:for k,v in kwargs:
print
('{}={}'
.format
(k,v)
,end=
',')
showconfig(host=
'127.0.0.1'
,port=
'8080'
,username=
'root'
,password=
'123'
)
keyword-only引數deffn(
*args,x)
:print
(x,args)
fn(1,2
)#錯誤傳參
fn(3,4
,5)#錯誤傳參
fn(1,2
,3,x=5
)#正確傳參
keyword-only引數,就是這個引數必須使用關鍵字傳參,上例中可以理解為,args可變引數收集了所有的位置引數,所有後面的x不可能通過位置傳參傳入。
總結
普通引數、預設引數、可變位置引數、keyword-only引數(可帶預設值)、可變關鍵字引數
python 函式傳參 傳參和傳引用
首先還是應該科普下函式引數傳遞機制,傳值和傳引用是什麼意思?函式引數傳遞機制問題在本質上是呼叫函式 過程 和被呼叫函式 過程 在呼叫發生時進行通訊的方法問題。基本的引數傳遞機制有兩種 值傳遞和引用傳遞。值傳遞 passl by value 過程中,被調函式的形式引數作為被調函式的區域性變數處理,即在...
Python函式傳參
首先還是應該科普下函式引數傳遞機制,傳值和傳引用是什麼意思?函式引數傳遞機制問題在本質上是呼叫函式 過程 和被呼叫函式 過程 在呼叫發生時進行通訊的方法問題。基本的引數傳遞機制有兩種 值傳遞和引用傳遞。值傳遞 passl by value 過程中,被調函式的形式引數作為被調函式的區域性變數處理,即在...
python 函式傳參
函式的好處 1.保持一致性 2.可重用 3.可擴充套件 函式的返回值 1.空,返回none 2.有乙個物件,返回當前物件 3.有多個物件,返回元組 tuple import time 定義函式,列印日誌時間 deflogger time format y m d x time current tim...