
现在有一个函数 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 |