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