【问题标题】:Importing variables gives attribute error python导入变量给出属性错误python
【发布时间】:2013-03-27 10:14:02
【问题描述】:

这是在 python 2.7.3 中完成的:

x.py:

import y
global path_variable
path_variable = "a_path"
y.procedure()

y.py:

import x
def procedure():
    return x.path_variable

现在当我运行 X 时,我得到了这个奇怪的错误:

AttributeError: 'module' object has no attribute 'path_variable'

这是为什么?据我所知,python 允许您导入变量。我做错了吗?

【问题讨论】:

    标签: python variables import attributeerror


    【解决方案1】:

    我相信这只是循环依赖的问题。基本上,您可以修复此代码,但您可能需要重新考虑您的包设计,以便您没有两个相互导入的模块。

    另外,您不需要将path_variable 声明为global,因为它仅在本地范围内更改全局范围内的变量时使用,并且在 Python 中通常也不鼓励使用它。

    x.py

    import y
    path_variable = "a_path"
    
    if __name__ == "__main__":
        y.procedure()
    

    y.py

    import x
    def procedure():
        return x.path_variable
    

    【讨论】:

    • 这不是全部代码。所以 x 是全局的是有原因的。我只是想我会说它是全球性的,也看看它是否会有所作为。
    猜你喜欢
    • 2014-01-29
    • 2014-08-15
    • 2021-01-21
    • 1970-01-01
    • 2018-01-06
    • 1970-01-01
    • 2019-07-09
    • 2020-04-05
    • 2017-06-29
    相关资源
    最近更新 更多