Python 函式引數形式

2021-08-16 11:16:53 字數 2827 閱讀 6967

根據定義的函式的引數位置來判斷引數的值。位置引數一旦定義,在呼叫函式時,就必須傳入對應的引數值。

def

show_info

(name, age):

print("name: , age: ".format(name,age))

show_info("yuchaoshui", 23)

def

show_info

(name, age, city="beijing", company="alibaba"):

print("name: , age: , city:, company:".format(name, age, city, company))

show_info("yuchaoshui", 23)

show_info("yuchaoshui", 23, "shanghai")

show_info("yuchaoshui", 23, company="baidu", city="shanghai")

注意

pass上面的做法是錯誤的,正確的應該像下面這樣實現。

no_value = object()

deffunc

(a, b=no_value):

if b is no_value:

print("no b value supplied")

可變引數表示引數的個數變化的,呼叫時傳遞多個引數。

def

func

(*args):

for i in args:

print(i)

func(1,2,3,4)

也可以先組裝 list 或 tuple,再通過*mylist傳入,呼叫函式時,*可以將序列分解成單個的引數。args接收到的是乙個 tuple 或 list

def

func

(*args):

for i in args:

print(i)

mylist = [1,2,3,4]

func(*mylist)

關鍵字引數允許傳入未定義的引數名, 函式中kwargs接收到的是乙個字典。

呼叫函式方式時使用類似city='shanghai'這種方式傳入引數。 也可以傳入乙個字典,傳入時使用兩個**號來將字典解析成引數傳入。

def

person

(**kwargs):

for k,v in kwargs.items():

print(': '.format(k, v))

person(city='shanghai')

extra =

person(**extra)

命名關鍵字引數也叫強制關鍵字引數。關鍵字引數允許傳入任意的引數,命名關鍵字引數可以限制傳入引數的關鍵字,使用*將其分開。

def

person

(name, age, *, city, job):

print(name, age, city, job)

person('yzy', 23, city='beijing', job='programer')

def

person

(name, age, *, city='beijing', job='programer'):

print(name, age, city, job)

person('yzy', 23)

def

person

(name, age, *scores, city='beijing', job='programer'):

print(name, age, scores, city, job)

person('yzy', 23, 99, 100, city='shanghai')

結果為:yzy 23 (99, 100) shanghai programer, 99,100 是傳遞的可變引數,後面是命名關鍵字引數。

以上5中引數都可以隨意組合,但是引數定義的順序必須是:位置引數、預設引數、可變引數、命名關鍵字引數和關鍵字引數。

注意: 引數的組合使用不建議太複雜,太複雜的話可讀性很差。

函式的引數可以使用isinstance()內建函式來檢查。

def

test

(x,y,z):

ifnot isinstance(x, int):

raise typeerror('x need arg type int')

ifnot isinstance(y, str):

raise typeerror('y need arg type str')

ifnot isinstance(z, (str, int)):

raise typeerror('z need arg type str or int')

test(2,'3',object)

python形式引數 Python 函式的引數形式

形參 在定義函式時,括號內的引數成為形參 特點 形參就是變數名 def foo x,y x 1,y 2 print x print y 實參 在呼叫函式時,括號內的引數成為實參 特點 實參就是變數值 foo 1,2 在呼叫階段實參 變數值 才會繫結形參 變數名 呼叫結束後,解除繫結 一 函式形參分為...

Python函式引數傳遞的幾種形式

莫聽穿林打葉聲,何妨吟嘯且徐行。竹杖芒鞋輕勝馬,誰怕?一蓑煙雨任平生。位置傳參 實際呼叫引數 實參 的對應關係與形式引數 形參 的對應關係是按位置來依次對應的。def fx a,b,c pass fx 1,2,3 序列傳參 在函式呼叫過程中,用 將序列拆解 或收集 後按位置進行傳遞的傳參方式,def...

js函式的幾種引數形式

es6 預設引數特性允許使用預設值初始化引數。這種比上面介紹的方法更好 更簡潔。an highlighted block function parameter param1,param2 0 parameter 1 1 parameter 1 undefined 1function paramete...