python函数可变长参数_day14 Python函数之可变长参数
函數(shù)參數(shù)
1.形參變量只有在被調(diào)用時(shí)才分配內(nèi)存單元,在調(diào)用結(jié)束時(shí),即刻釋放所分配的內(nèi)存單元。因此,形參只在函數(shù)內(nèi)部有效。函數(shù)調(diào)用結(jié)束返回主調(diào)用函數(shù)后則不能再使用該形參變量
2.實(shí)參可以是常量、變量、表達(dá)式、函數(shù)等,無論實(shí)參是何種類型的量,在進(jìn)行函數(shù)調(diào)用時(shí),它們都必須有確定的值,以便把這些值傳送給形參。因此應(yīng)預(yù)先用賦值,輸入等辦法使參數(shù)獲得確定值
a傳給了x。b傳給了y。
3.位置參數(shù)和關(guān)鍵字(標(biāo)準(zhǔn)調(diào)用:實(shí)參與形參位置一一對應(yīng);關(guān)鍵字調(diào)用:位置無需固定)
#位置參數(shù),必須一一對應(yīng),否則報(bào)錯(cuò),缺一個(gè)或者多一個(gè)不行
def test1(x,y,z):
print(x)
print(y)
print(z)
test1(1,3,5)
結(jié)果:
1
3
5
#關(guān)鍵字參數(shù),不需要一一對應(yīng),缺一個(gè)或者多一個(gè)不行
def test1(x,y,z):
print(x)
print(y)
print(z)
test1(y=1,z=3,x=5)
結(jié)果:
5
1
3
位置參數(shù)和關(guān)鍵字混搭
#位置參數(shù)必須在關(guān)鍵字參數(shù)左邊
def test1(x,y,z):
print(x)
print(y)
print(z)
test1(1,3,z=5)
#z=5換成y=5會報(bào)錯(cuò),因?yàn)榘凑枕樞?#xff0c;5會覆蓋3,但是z值沒有
結(jié)果:
1
3
5
4.默認(rèn)參數(shù)
def handle(x,type="None"):
print(x,type)
handle("hello")
handle("hi",type="how are you")
handle("ll","ii")
結(jié)果:
hello None
hi how are you
ll ii
5.參數(shù)組
**跟字典有關(guān)系
*跟列表有關(guān)系
**,*args在最后放著表示可擴(kuò)展性!!!!
*
def test(x,*args):
print(x)
print(x,args)
print(args)
print(args[0])
print(*args[0])
test(1,["c","v","b"],5,6,7,8)
結(jié)果:
1
1 (['c', 'v', 'b'], 5, 6, 7, 8)
(['c', 'v', 'b'], 5, 6, 7, 8)
['c', 'v', 'b']
c v b
**
def test01(x,**kwargs):
print(x)
print(kwargs)
test01(1,name="charon",age=10)
結(jié)果:
1
{'name': 'charon', 'age': 10}
結(jié)合:*args千萬不能在后面,否則報(bào)錯(cuò),位置參數(shù)必須在關(guān)鍵字參數(shù)前面
def test01(x,*args,**kwargs):
print(x)
print(args,args[1])
print(kwargs)
test01(1,"vv",2,"bb",name="charon",age=10)
結(jié)果:
1
('vv', 2, 'bb') 2
{'name': 'charon', 'age': 10}
總結(jié)
以上是生活随笔為你收集整理的python函数可变长参数_day14 Python函数之可变长参数的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 鸿蒙系统年底问世 将向全球开发者开源
- 下一篇: 什么是每股净资产 价值比率介绍