现在有一个函数 func,有两个参数 x,y,其中 x 是必选参数,y 是可选参数
我的想法是:当参数 y 没有传入值的时候,参数 y 的值默认等于参数 x 的值
有点类似于:
def add(x,y=x): pass
但是这么写肯定是不对的
所以应当怎么实现我的想法呢?
![]() | 1 crab 2018-01-19 17:00:06 +08:00 在函数内判断 Y 是否 None,再赋值是否可行? |
![]() | 2 Pythonerxiaobai 2018-01-19 17:00:40 +08:00 ![]() def add(x, y=None): if not y: y = x return x + y |
3 yujieyu7 2018-01-19 17:01:59 +08:00 不求优雅的话,函数内自己判断和赋值吧 |
4 mooncakejs 2018-01-19 17:07:02 +08:00 ![]() @Pythonerxiaobai add(1,0) 卒 |
![]() | 5 hjq98765 OP |
![]() | 6 Pythonerxiaobai 2018-01-19 17:15:22 +08:00 @mooncakejs 那在加上判断为 0 的情况呗 |
![]() | 7 bombless 2018-01-19 17:17:25 +08:00 不是 is None 么 233 |
![]() | 8 tonic 2018-01-19 17:23:52 +08:00 ``` missing = object() def add(x, y=missing): if y is missing: y = x ``` |
![]() | 9 grimpil 2018-01-20 10:18:59 +08:00 ![]() 不知道这样可以不 def f(x, *arg): if len(arg) == 0: y = x f(x,y) elif len(arg) == 1: y = arg[0] pass |