python函数中可变参数的传递方式是_Python的函数参数传递机制

Python只支持“共享传参”,即传递的是引用的一个副本,函数中对形参的修改,直接作用于引用对象。(Python的变量本质是对对象的引用标记),C++语言则是默认复制数据副本,要达到Python的共享传参的效果,采用指针形参传递地址,或者采用&。

例如:

def share(c):

c[0]=3

a=[1]

b=a

print(a)

print(b)

share(c)

print(a)

print(b)

结果:

[1]

[1]

[3]

[3]

可以看出,a,b都是指向同一个List对象,而传给share()函数之后,形参c也是指向这个List对象,所有的操作都是在这个对象之上操作,这就是共享传参的含义。

形参的传递形式

了解了python传参的本质,下面学习传参形式的约定

最简单的,对应位置传参:

比如上个例子的share(c),就是声明要传入一个形参c,如果

share(c=1),则在没有传入c时,c默认赋值1

可变参数传参:

如果不确定要传入的参数数量,则要采用可变参数传参,在形参前面加,注意这个只是一种可变参数的标识,和C中的用法不一样。带有*的参数视为列表。

def share(*num):

for i in num:

print(i)

share(1,2,3)

#result

1

2

3

关键字参数

可变参数是一个列表,关键字参数是一个key-value的字典,用**标识

def share(**d):

for key in d:

print(key,d[key])

share(a=1,b=2,c=3)

#result

a 1

b 2

c 3

拓展

命令行参数的读入一般采用argparse库,后续补充

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值