Python:多行参数

时间:2019-03-11 17:28:09

标签: python-3.x

是否可以将始终返回“ True”的生成器放在一行中?原因是它应该是函数中的默认参数,还是有办法使用多行这些参数?

这应该是函数的默认参数:

def example_function(generator= (def gen():
                                    while True:
                                        yield True)):
                                            print("In my function")

带有缩进的代码显示以下语法错误:

def example_function(generator= (def gen():
                                   ^

1 个答案:

答案 0 :(得分:1)

如果我理解正确,那就是您所需要的:

def example_function(generator=None):

   def default_generator():
       while True:
           yield True

  generator = generator or default_generator

通常没有理由将所有内容放在一起。另一方面,您也可以使用itertools.repeat(True)来定义default_generator,这样可以节省几行代码:

import itertools

def example_function(generator=None): 
    generator = generator or itertools.repeat(True)

通常,最好将x=None用于具有默认值的默认关键字参数。您可以看看为什么using an object instead of None can be risky(函数也是对象,所以在这里适用)。