Python 为什么可以';返回赋值语句

Python 为什么可以';返回赋值语句,python,Python,空闲时, 我编写了一个函数并打算返回一个值。但它不能再回来了 >>> def grade(value): if value > 100: return (value=100) if value <0: return (value=0) SyntaxError: invalid syntax 它可以在a中工作,只有表达式可以位于“return”之后 return\u stmt::=“return”[表达式列表] 作业

空闲时, 我编写了一个函数并打算返回一个值。但它不能再回来了

>>> def grade(value):
    if value > 100:
        return (value=100)
    if value <0:
        return (value=0)

SyntaxError: invalid syntax
它可以在a中工作,只有表达式可以位于“return”之后

return\u stmt::=“return”[表达式列表]

作业是一种工作。不能将语句放在“return”之后,因为语句不是表达式

考虑完全跳过作业。只需返回
即可:

return 100

只需编写
return100
return0
return
语句中不能有赋值(=)。也要小心你的契约。返回作业真的没有任何意义,这就是为什么。当你返回函数时,它就结束了,所以赋值没有任何意义,因为它永远不可用。因为允许赋值语句被用作表达式会导致有害的bug。比较
return value==1
return value=1
@jornsharpe并不是我以任何方式提倡这一点,但有一种情况是赋值会产生效果:如果您希望同时返回一个值并将全局变量设置为该值。
return 100