要命的定義函式。。。引數組合。請認真理解!

2022-09-17 06:45:07 字數 2245 閱讀 8025

def test_args_kwargs(arg1, arg2, arg3):

print("arg1:", arg1)

print("arg2:", arg2)

print("arg3:", arg3)

使用*args 和*kwargs 來呼叫函式

# 首先使用 *args

>>> args = ("two", 3, 5)

>>> test_args_kwargs(*args)

arg1: two

arg2: 3

arg3: 5

# 現在使用 **kwargs:

>>> kwargs =

>>> test_args_kwargs(**kwargs)

arg1: 5

arg2: two

arg3: 3

標準引數與*args 和*kwargs 的使用順序

some_func(fargs, *args, **kwargs)

fargs 標準引數,位置引數

定義函式,可以用必選引數、預設引數、可變引數、關鍵字引數和命名關鍵字引數。

這五種可以組合使用,但排列順序必須是:必選引數、預設引數、可變引數(元組引數*args,傳遞任意數量實參字典引數**kw(傳遞任意數量關鍵字實參,接收的是字典))、關鍵字引數、命名關鍵字引數*

使用命名關鍵字引數時,要特別注意,如果沒有可變引數,就必須加乙個*作為特殊分隔符。如果缺少*,python直譯器將無法識別位置引數和命名關鍵字引數。

def f1(a, b, c=0, *, *args, **kw)

print('a=', a, 'b=', b, 'c=', c, 'args=', args, 'kw=', kw)

a為必選引數

b為必選引數,

c為預設引數(輸入值是可以修改的,如果輸入值不改,就顯示預設值。預設引數,必須指向不變物件,例如none,str)

def add_end(l=none):

if l is none:

l =

return l

*可變引數(variable argumen)是:*args是非鍵值對的可變數量的引數列表。 **kwargs 是不定長度的鍵值對(關鍵字和數值)。

在引數前面加個*,例如*numbers。這裡就傳入任意個引數,包括0個引數。

#給定一組數字a,b,c……,計算a² + b² + c² + ……

def calc(*numbers):

sum = 0

for n in numbers:

sum = sum+n*n

return sum

calc(1, 3, 5 , 7)

#84

呼叫函式時,位置引數必須位於關鍵字引數之前,且二者都位於函式

**kw

def person(name,age,***,**kw):

print

name

print

age

print

***

if'phone'in

kw:

print kw['

phone']

person(

'hanmm

','10

','m

',phone = '

sss'

)hanmm

10msss

*args

def add(*args):

rtn =0

for i in

args:

rtn +=i

return

rtnadd(1,5,7,9)

#result: 22 #

def add(*args):

rtn =0

for i in

args:

rtn +=i

return

rtn

list = [1,5,7,9]#

先執行這行,再執行下面的add(*list)

add(*list)

#result: 22 #

Day5 07 函式的引數 引數組合

現在我們學完了位置引數 預設引數 可變引數 關鍵字引數 命名關鍵字引數五種引數型別。在python中定義函式,可以使用這五種引數進行組合。但是引數定義的順序必須是 必選引數 預設引數 可變引數 命名關鍵字引數和關鍵字引數 def f1 a,b,c 0,pp,kw print a,b,c,pp,kw ...

Python函式的引數定義

python的函式具有非常靈活的引數形態,既可以實現簡單的呼叫,又可以傳入非常複雜的引數。預設引數一定要用不可變物件,如果是可變物件,程式執行時會有邏輯錯誤!要注意定義可變引數和關鍵字引數的語法 args是可變引數,args接收的是乙個tuple kw是關鍵字引數,kw接收的是乙個dict。以及呼叫...

函式的定義和引數

在程式中,函式就是具備某一功能的工具,事先將工具準備好就是函式的定義,遇到應用場景拿來就用就是函式的呼叫 函式可以使程式分塊化,增加程式的擴充套件性和可讀性 先定義,後呼叫 定義函式 def 函式名 定義階段 造車輪階段 函式注釋寫在這裡 函式相當於工具,注釋相當於工具的說明書 塊 注意 函式定義階...