1.位置傳遞
def message(name, address):
return 'my name is %s ,my home locate in %s.' %(name,address)
print(message('lily','shanghai'))
呼叫 message,分別把lily,shanghai 傳遞給name,address
2.關鍵字傳遞
def message(name, ago, address):
return 'my name is %s ,%s years ago,my home locate in %s.' %(name, ago, address)
關鍵字傳遞,可以無視引數順序
print(message(name = 'lily', address = 'shanghai', ago = 12))
關鍵字和位置混用,位置引數要在關鍵字前面
print(message('lily', address = 'shanghai', ago = 12))
3.默認值引數
def message(name, ago, address='shanghai'):
return 'my name is %s ,%s years ago,my home locate in %s.' %(name, ago, address)
address 該引數沒有給傳遞值,引數賦予默認值
print(message(name='lily', ago=12))
第二次呼叫函式的時候,address被賦值為beijing,不再使用默認值,
print(message(name='lily', address='beijing', ago=12))
4.包裹傳遞
引數被all收集,type: tuple
def message(*all):
print(all)
print(type(all))
message('a','b','c')
引數被collect收集,type: dict
def age(**collect):
print(collect)
print(type(collect))
age(lily=12, xiaoming=13, sare=14)
結果:
('a', 'b', 'c')
<class 'tuple'>
{'lily': 12, 'xiaoming': 13, 'sare': 14}
<class 'dict'>
包裹傳遞的關鍵在于定義函式時,在相應元組或字典前加*或**
5.解包
tuple1 = [1, 4, 6]
dict1 = {'a': 'test1', 'b': 'test2', 'c': 'test3'}
print('dict1', dict1)
def use(a, b, c):
print(a, b, c)
use(**dict1) # 把字典引數解包 此時相當于關鍵字引數傳遞 名字和函式定義的引數名必須要一一對應
use(*tuple1) #把元組解包 此時相當于位置引數傳遞
結果:
dict1 {'a': 'test1', 'b': 'test2', 'c': 'test3'}
test1 test2 test3
1 4 6
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/231308.html
標籤:Python
