我的问题源于这个问题,其中一个用户由于不知情地重新绑定了内置全局变量
我更具体地考虑了Mathematica。在Mathematica中,所有内置函数都有属性
也许有经验的Python程序员不需要这个功能,但对像我这样的新手来说,有类似的功能会很好。(现在想想,我已经编程Mathematica 15年了,
set
而感到困惑。有没有一种直接的方式让Python在您尝试覆盖内置变量时发出警告呢?我更具体地考虑了Mathematica。在Mathematica中,所有内置函数都有属性
Protected
。如果您尝试重新定义Set
,它会告诉您Set
是Protected
,并将其保持不变,这可能会在以后遇到应该正常工作但却无法正常工作的情况时为您节省大量的困扰。如果您确实严重想要重新定义Set
,您仍然可以这样做--您只需要先Unprotect
它。您还可以Protect
您自己的符号,以保护它们免受意外重新定义的影响。也许有经验的Python程序员不需要这个功能,但对像我这样的新手来说,有类似的功能会很好。(现在想想,我已经编程Mathematica 15年了,
Protected
仍然偶尔救了我的命。)
id()
的警告。 - Martijn Pieterspylint
可以检测到这个问题,但只有关键字 (例如def
、for
) 是被保护不可重新赋值的。 - jonrsharpe__builtin__
模块来引用内置模块。然而,这对OP没有帮助;他们担心会意外地遮蔽内置模块。 - Martijn Pieters