python可选参数_多个可选参数python

所以我有一个函数,有几个可选参数,比如:

1def func1(arg1, arg2, optarg1=None, optarg2=None, optarg3=None):

optarg1和optarg2通常一起使用,如果指定了这两个参数,则不使用optarg3。相反,如果指定了optarg3,则不使用optarg1&optarg2。如果它是一个可选参数,那么函数很容易"知道"要使用哪个参数:

1

2

3

4if optarg1 != None:

do something

else:

do something else

我的问题是如何"告诉"函数,当有多个可选参数并且并非总是指定所有参数时,要使用哪个可选参数?用**Kwargs分析参数是不是可行?

函数是否可能与可选参数重复?

**kwargs用于让python函数接受任意数量的关键字参数,然后**解包关键字参数字典。在此处了解更多信息

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22def print_keyword_args(**kwargs):

# kwargs is a dict of the keyword args passed to the function

print kwargs

if("optarg1" in kwargs and"optarg2" in kwargs):

print"Who needs optarg3!"

print kwargs['optarg1'], kwargs['optarg2']

if("optarg3" in kwargs):

print"Who needs optarg1, optarg2!!"

print kwargs['optarg3']

print_keyword_args(optarg1="John", optarg2="Doe")

# {'optarg1': 'John', 'optarg2': 'Doe'}

# Who needs optarg3!

# John Doe

print_keyword_args(optarg3="Maxwell")

# {'optarg3': 'Maxwell'}

# Who needs optarg1, optarg2!!

# Maxwell

print_keyword_args(optarg1="John", optarg3="Duh!")

# {'optarg1': 'John', 'optarg3': 'Duh!'}

# Who needs optarg1, optarg2!!

# Duh!

这是做这件事最要紧的方法。

如果您在函数的调用中分配它们,那么您可以预先清空正在传入的参数。

1

2

3

4

5

6

7def foo( a, b=None, c=None):

print("{},{},{}".format(a,b,c))

>>> foo(4)

4,None,None

>>> foo(4,c=5)

4,None,5

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值