根據定義的函式的引數位置來判斷引數的值。位置引數一旦定義,在呼叫函式時,就必須傳入對應的引數值。
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...