【发布时间】:2020-05-20 07:47:20
【问题描述】:
仅使用 return 关键字的简单方法返回 None
def abc():
return
print(abc())
输出:无
同样,
def abc():
return None
print(abc())
输出:无
但是,如果我们在生成器中使用它
def abc():
yield 1
return None
print(abc())
它给了
SyntaxError: 'return' with argument inside generator
在哪里
def abc():
yield 1
return
print(abc())
给予
<generator object abc at 0x7f97d7052b40>
为什么我们的行为会有这种差异?
【问题讨论】:
-
它明确指出带参数返回是语法错误。语法不检查也不关心参数是否为 None,SyntaxError 之前已经发生过。
-
@JanChristophTerasa - 这就是 OP 所要问的,为什么行为会有所不同
-
您使用的似乎是旧版本的 Python。
-
这能回答你的问题吗? Why can't I use yield with return?
-
This answer 值得一读
标签: python python-3.x generator