如何防止 python 函数读取外部作用域变量?
how to prevent python function to read outer scope variable?
在定义 python 函数时,我发现如果变量名中有拼写错误并且该变量已存在于外部作用域中,则很难进行调试。我通常对相同类型数据结构的变量使用相似的名称,所以如果发生这种情况,该函数仍然可以正常运行,但只是 returns 一个错误的结果。那么有没有办法阻止python函数读取外部作用域变量呢?
他们说你应该尽可能避免使用全局变量。另外请记住,python 在 the specific order.
中有搜索变量的规则
因此只有在删除全局变量时才可以避免检查全局变量,但这会使全局变量的使用变得无用。
你完全违背了拥有范围的观点。我们有本地和全球范围是有原因的。您无法阻止 Python 查看外部范围变量。其他一些语言允许范围优先,但 Python 的设计原则强制执行强范围。这是一种语言设计选择,因此 Python 是试图阻止外部范围变量读取的错误语言。
只需使用更好的命名方法来确保不会混淆,您可以使用大多数文本编辑器提供的查找替换功能来更改变量名称。
在定义 python 函数时,我发现如果变量名中有拼写错误并且该变量已存在于外部作用域中,则很难进行调试。我通常对相同类型数据结构的变量使用相似的名称,所以如果发生这种情况,该函数仍然可以正常运行,但只是 returns 一个错误的结果。那么有没有办法阻止python函数读取外部作用域变量呢?
他们说你应该尽可能避免使用全局变量。另外请记住,python 在 the specific order.
中有搜索变量的规则因此只有在删除全局变量时才可以避免检查全局变量,但这会使全局变量的使用变得无用。
你完全违背了拥有范围的观点。我们有本地和全球范围是有原因的。您无法阻止 Python 查看外部范围变量。其他一些语言允许范围优先,但 Python 的设计原则强制执行强范围。这是一种语言设计选择,因此 Python 是试图阻止外部范围变量读取的错误语言。
只需使用更好的命名方法来确保不会混淆,您可以使用大多数文本编辑器提供的查找替换功能来更改变量名称。