【问题标题】:Access module masked by variable name被变量名屏蔽的访问模块
【发布时间】:2010-03-01 11:04:59
【问题描述】:

如何访问使用名为 x 的变量屏蔽的名为 x 的模块?

【问题讨论】:

    标签: python namespaces


    【解决方案1】:

    不要将变量命名为 x 或使用 import ... as 样式。

    >>> sys = 2
    >>> import sys as s
    >>> s
    <module 'sys' (built-in)>
    >>> sys
    2
    

    【讨论】:

      【解决方案2】:

      使用sys.modules[module_name] ...并且您应该避免屏蔽模块名称:明智地使用import 语句,例如将 XYZ 导入为 ABC。

      您还可以依赖使用更完整的命名空间“路径”,例如os.path.xxx

      【讨论】:

      • 但是如果 sys 被屏蔽了怎么办?此外,使用命名空间路径也无济于事,例如os 不再是一个模块。
      • ... 如果 XYZ 被屏蔽并且...关键是:有不同的方法来解决这个问题。
      【解决方案3】:
      import x as someotherx
      

      【讨论】:

        猜你喜欢
        • 2019-06-27
        • 1970-01-01
        • 2015-05-12
        • 2013-07-13
        • 1970-01-01
        • 1970-01-01
        • 2014-08-29
        • 2016-04-28
        • 2017-12-25
        相关资源
        最近更新 更多