如何防止python函数读取外部范围变量?

时间:2015-05-07 17:55:50

标签: python scope

在定义python函数时,如果我在变量名中输入错误并且该变量已存在于外部作用域中,我发现很难调试。我通常对相同类型的数据结构的变量使用类似的名称,所以如果发生这种情况,函数仍然运行正常,但只返回错误的结果。那么有没有办法阻止python函数读取外部作用域变量?

2 个答案:

答案 0 :(得分:2)

你完全违背了Scopes的观点。我们有本地和全球范围是有原因的。您无法阻止Python查看外部范围变量。其他一些语言允许范围优先,但Python的设计原则强制实施强大的范围。这是一种语言设计选择,因此Python是试图阻止外部范围变量读取的错误语言。

只需使用更好的命名方法以确保不会混淆,您可以使用大多数文本编辑器提供的查找替换功能来更改变量名称。

答案 1 :(得分:0)

他们说如果可能的话,你应该避免使用全局变量。另外,请记住,python有关于在the specific order中搜索变量的规则。

因此,只有删除它们才能避免检查全局变量,但它会使全局变量无用。