在Python中,
global
声明用于函数定义内部,以指定分配变量将创建/更新全局变量,而不是默认的局部变量。
Python 还允许在函数定义之外使用
global
语句。这不会导致错误,这会导致许多初学者通过编写一次顶级声明而不是将其放入每个需要它的函数中来滥用它。
看起来这应该是一个语法错误,比如在函数外部使用
return
或在循环外部使用 break
。这些声明有任何目的吗?这可以解释为什么允许这样做吗?
它们只是不是一个错误,也没有什么害处,请记住,Python 是作为一种宽容的第一语言而创建的,并且在 20 多年里一直如此。 近年来,这种感觉在一些语言用户群体中发生了变化,他们更愿意明确地接受更严格的语言使用。
直接禁止无害地允许使用
global
或其他 kwyeword 是没有意义的。对于那些喜欢更严格实践的人,我确信 linter 和其他工具会警告错误放置的 global
,或者如果没有,则可以将其作为这些工具中请求的功能进行填充。
但是考虑在 Python 核心中限制它吗?做什么的?还有什么是应该限制的?所有无操作表达式都应该简单地转换为语法错误吗? (就像,只是在一行中单独提及一个变量?)。什么时候该语言将不再是 Python?