现在有一个函数 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 1
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 1
@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 1
不知道这样可以不
def f(x, *arg): if len(arg) == 0: y = x f(x,y) elif len(arg) == 1: y = arg[0] pass |