为什么不能在python 3中更改global / nonlocal / return语句中的变量?

时间:2014-09-12 19:26:14

标签: python python-3.x

在javascript中我以前能够var a=5return a=5 但在python中,如果我尝试global a=5nonlocal a=5return a=5,我会收到错误消息。有没有理由说明为什么你不能或我只是做错了什么

1 个答案:

答案 0 :(得分:4)

在某些语言中,通常的做法是将作业固定在另一个语句中。例如,

if a = 1 { ... }

Python开发人员认为这是一个bug的来源,因为它太接近

if a == 1:

因此,他们禁止在其他陈述中嵌套作业。由于

global a 

本身就是一个语句,不允许在语句内部进行赋值。