python中自定义函数如何传递动态参数_Python函数的动态参数

导入:大家看下,下面是一个菜单函数. 假如现在要传100个菜名,我的形参就要写100个,很麻烦,怎么办呢?def menu(food_1,food_2,food_3):print(food_1,food_2,food_3,food_4)eat('剁椒盖饭','木耳盖饭','香肠盖饭','肉丝盖饭')如果我们还是用上面的方式传参,很显然,非常Low!针对上面的情况,我们学习下新的玩意,叫动态函数.还...
摘要由CSDN通过智能技术生成

导入:大家看下,下面是一个菜单函数. 假如现在要传100个菜名,我的形参就要写100个,很麻烦,怎么办呢?

def menu(food_1,food_2,food_3):

print(food_1,food_2,food_3,food_4)

eat('剁椒盖饭','木耳盖饭','香肠盖饭','肉丝盖饭')

如果我们还是用上面的方式传参,很显然,非常Low!针对上面的情况,我们学习下新的玩意,叫动态函数.

还是上面菜单的例子,我想实现随时随地任意添加,想添加多少就多少?

1.形参中只有动态参数:

情况1:实参中只有位置参数

在参数位置编写*表示接收任意内容,接受到的内容以元组的方式存储在args中,可以打印出来.

def menu(*args): #

args可以是任意名字

print(args)

menu('剁椒盖饭','木耳盖饭','香肠盖饭','肉丝盖饭')

打印结果:

('剁椒盖饭', '木耳盖饭', '香肠盖饭', '肉丝盖饭')

情况2:实参中只有关键字参数(报错)

def menu(*args): #

args可以是任意名字

print(args)

menu(food_1='剁椒盖饭',food_2='木耳盖饭',food_3='香肠盖饭',food_4='肉丝盖饭')

打印结果:

报错,因为*args只能接收位置参数,TypeError: menu() got an

unexpected keyword argument 'food_1'

情况3:实参中既有位置参数,也有关键字参数(且位置参数在关键字参数前)

def menu(*args): #

args可以是任意名字

print(args)

menu('剁椒盖饭','木耳盖饭','香肠盖饭',food_4='肉丝盖饭')

打印结果:

报错,因为*args只能接收位置参数,TypeError: menu() got an

unexpected keyword argument 'food_4'

情况4:实参中既有位置参数,也有关键字参数(且关键字参数在位置参数前)

def menu(*args): #

args可以是任意名字

print(args)

menu(food_1='剁椒盖饭','木耳盖饭','香肠盖饭','肉丝盖饭')

打印结果:

报错,SyntaxError: positional argument follows

keyword argument

2.形参中位置参数和动态参数混合使用

>>形参顺序:位置参数--*args(只能接收位置参数)

情况1:只有动态参数,实参中只有位置参数

在参数位置编写*表示接收任意内容,接受到的内容以元组的方式存储在args

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值