Python中的函式定義及引數

2021-09-02 09:20:19 字數 4357 閱讀 6749

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

='成都'

):

print

('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

):

print

('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):

print

('%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沒有引...