Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/306.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python中分配多个变量的有效方法_Python - Fatal编程技术网

Python中分配多个变量的有效方法

Python中分配多个变量的有效方法,python,Python,我有这样的代码: def func(a = None, b = None, c= None,..): a = a if a is not None else 0 b = b if b is not None else 0 c = c if c is not None else 0 . . . z = z if z is not None else 0 在这里,我从输入中分配变量。有没有有效的写作方法?这不仅仅是像上面那样明确地写出来 我想知道您是否希望

我有这样的代码:

def func(a = None, b = None, c= None,..):
   a = a if a is not None else 0
   b = b if b is not None else 0
   c = c if c is not None else 0
   .
   .
   .
   z = z if z is not None else 0

在这里,我从输入中分配变量。有没有有效的写作方法?这不仅仅是像上面那样明确地写出来

我想知道您是否希望将参数组合到一些排序集合中,然后只传递集合。即使是10个参数也在推动它。否则

(a, b, c, d, e) = (o if o is not None else 0 for o in (a, b, c, d, e))

当然,您可能会在LHS或RHS上键入错误的顺序。

我想知道您是否希望将参数组合到某个排序集合中,然后传递该集合。即使是10个参数也在推动它。否则

(a, b, c, d, e) = (o if o is not None else 0 for o in (a, b, c, d, e))

当然,您可能会在LHS或RHS上键入错误的订单。

您可以使用lambda函数进行包装

def func(a = None, b = None, c= None,..):

    f = lambda x : 0  if x is None else  x
    a = f(a)
    b = f(b)
    #etc ...

可以使用lambda函数进行包装

def func(a = None, b = None, c= None,..):

    f = lambda x : 0  if x is None else  x
    a = f(a)
    b = f(b)
    #etc ...

我真诚地希望你的函数没有26个显式参数XD no。。。但我举个例子。我有10个左右,写起来还是很乏味的。我只是想看看是否有一种聪明的方法。为什么不直接使用数组呢?如果在函数定义中将变量赋值为0而不是零呢?使用varargs(*args)或传递列表或元组。如果参数具有非常不同的语义,则无法显式处理它们。我真诚地希望您的函数没有26个显式参数XD no。。。但我举个例子。我有10个左右,写起来还是很乏味的。我只是想看看是否有一种聪明的方法。为什么不直接使用数组呢?如果在函数定义中将变量赋值为0而不是零呢?使用varargs(*args)或传递列表或元组。如果参数具有非常不同的语义,则无法显式处理它们。ITYM
(a,b,c,d,e)=(o如果o不是(a,b,c,d,e)中o的其他0)
谢谢这听起来也不错。减少了显式编写代码的需要。ITYM
(a,b,c,d,e)=(o如果o不是(a,b,c,d,e)中o的其他0)
谢谢这听起来也不错。减少了显式编写代码的需要。