【问题标题】:how to prevent python function to read outer scope variable?如何防止python函数读取外部范围变量?
【发布时间】:2023-03-14 07:15:02
【问题描述】:

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

【问题讨论】:

  • 使用更有意义的变量名。
  • 并开始使用类来划分。
  • 在编码时要小心,或者获得更好的 IDE 来帮助您。
  • @ILostMySpoon 变量确实有有意义的名称。他们只是有相似的名字。

标签: python scope


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

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

    因此,您可以避免仅在删除全局变量时才检查它们,但这会使全局变量的使用无用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-10
      • 2019-10-05
      • 2013-10-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多