1、函式必須先宣告在使用,自定義函式採用關鍵字def,返回語句return,同時可以支援pass語句佔位,標明函式為空函式:
#~ 函式
# 自定義求絕對值函式
def
myabs (x
):
ifnot
isinstance(x
,(int,
float
)):
raise
typeerror
('illigel argument.'
)
if(
x >
0):
return
x
else
:
return
-x
myabs(1
)
# 可以使用pass關鍵字,標明該函式什麼事情也不做。主要用於函式佔位
def
passtest
():
pass
print
('passtest() : '
,passtest
()) # 輸出結果:passtest() : none
2、函式的預設引數:
預設引數必須在引數列表的最後定義,用於防止引數不匹配。當有多個預設引數,需要指定某乙個預設引數的值時,可以帶上引數的名稱:
def
power(x
,n =2
):
s
=1
while
n >
0:
n =n
-1
s =s
*x
return
s
s
=power(2
,3)
d
=power(2
)
print
('s = %s, d = %d'%(
s,d))
# 輸出結果: s = 8, d = 4
# 多個預設引數
def
add(
name
,age
,***
,province
='四川'
,city
='成都'
):
('name = %s, age = %s, *** = %s, province = %s, city = %s'%(
name
,age
,***
,province
,city
))
add
('張三',10
,'男'
)# 輸出結果:name = 張三, age = 10, *** = 男, province = 四川, city = 成都
add
('李四',9
,"女"
,city
='廣安'
)# 輸出結果:name = 李四, age = 9, *** = 女, province = 四川, city = 廣安
3、可變引數:
python支援可變引數傳遞,採用前引數前邊加乙個星號(*)來標明引數型別是可變引數,可變引數實際上是採用tuple來接收引數資訊,所以可以直接用for in迴圈遍歷引數:
# 可變引數
# 定義求和引數
def
sum(*
number
):
res
=0
forv
innumber
:
res +=v
;
return
res
print
('1 + 2 + 3 ='
,sum(1
,2,3
))
print
('1 + 2 ='
,sum(1
,2))
arg =[
1,2,
3,4]
print
('1 + 2 + 3 + 4 ='
,sum
(*arg
))
4、關鍵字引數:
關鍵字引數用兩個星號表示(**),內部自動組裝成dict型別:
# 關鍵字引數
def
reg(
name
,age,**
other
):
('register infomation : name %s, age %s, other %s'%(
name
,age
,other
))
# 注意這裡的province、city為引數名稱,而不是普通字串
reg
('dendy',20
,province
='sc'
,city
='cd'
)# 輸出:register infomation : name dendy, age 20, other
arg
=
reg
('lily',18
,**arg)
# 輸出:register infomation : name lily, age 18, other
5、各種引數的混合使用:
必選引數、預設引數、可變引數和關鍵字引數4種引數都可以混合使用,注意,引數定義的順序必須是:必選引數、預設引數、可變引數和關鍵字引數
# 各種引數型別混合使用
def
show(a
,b,*
args,**
kw):
('%s, %s, %s, %s'%(
a,b,
args,kw
))
show
('haha'
,'xixi'
,'a'
,'b'
,p1
='p1'
,p2
='p2'
)# 輸出: haha, xixi, ('a', 'b'),
arg =(
'haha'
,'xixi'
,'a'
,'b'
)
kw
=# 輸出: haha, xixi, ('a', 'b'),
show
(*arg,**
kw)
Python 函式的定義 引數及呼叫
定義乙個函式要使用def語句,依次寫出函式名 括號 括號中的引數和冒號,然後,在縮排塊中編寫函式體,函式的返回值用return語句返回。如果你已經把my abs 的函式定義儲存為abstest.py檔案了,那麼,可以在該檔案的當前目錄下啟動python直譯器,用from abstest import...
關於Python中的引數定義及可變引數
first,函式的定義 def function pass 這是沒有引數的函式,本函式啥也不幹。second,帶引數的函式 def function a,b print a print b 這是帶引數的函式,直接輸出傳入的引數。注意 這類形式,引數的順序及個數一定要與定義一致,否則會報錯。third...
Python中函式的引數定義和可變引數
剛學用python的時候,特別是看一些庫的原始碼時,經常會看到func args,kwargs 這樣的函式定義,這個 和 讓人有點費解。其實只要把函式引數定義搞清楚了,就不難理解了。先說說函式定義,我們都知道,下面的 定義了乙個函式funca def funca pass 顯然,函式funca沒有引...