是否可以将始终返回“ True”的生成器放在一行中?原因是它应该是函数中的默认参数,还是有办法使用多行这些参数?
这应该是函数的默认参数:
def example_function(generator= (def gen():
while True:
yield True)):
print("In my function")
带有缩进的代码显示以下语法错误:
def example_function(generator= (def gen():
^
答案 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(函数也是对象,所以在这里适用)。