【问题标题】:How to modify variables from my __init__.py in other file?如何从我的 __init__.py 修改其他文件中的变量?
【发布时间】:2021-03-30 00:31:45
【问题描述】:

我正在用 python 做一个项目,我正在尝试尽可能好地组织我的代码。但我有一个大问题。我创建了一个 __init__.py 来存储一些变量。我想知道如何通过导入它们来修改另一个python文件中的这些变量,因为它不起作用。

这是我的树:

├── app
│   ├── __init__.py
│   └── thread.py
└── run.py

__init__.py:

dir1 = None
dir2 = None
len_dir1 = 0
len_dir2 = 0
sync_flag = "Synchronizing"
filter_flag = None
stop_flag = False
len_flag = 0

我想修改dir1的值,例如在我的run.py中:

运行.py:

from app import dir1, dir2

def set_dir(grid_command):
    dir1 = grid_command[1]
    dir2 = grid_command[2]

if __name__ == "__main__":
    print("Welcome to our Sync System:\n\nType \"HELP\" for more informations.\n")
    if len(sys.argv) == 3:
        set_dir(sys.argv)

我无法更新此变量,因为当我打印它时,dir1 = None(由于 __init__.py 中的初始化)

【问题讨论】:

    标签: python variables import module package


    【解决方案1】:

    您没有从app 模块更新dir1dir2。您正在做的是在您自己的模块中创建 dir1dir2 并更新它们。

    您打算更新 app 模块中的那个:

    import app
    
    def set_dir(grid_command):
        app.dir1 = grid_command[1]
        app.dir2 = grid_command[2]
    
    if __name__ == "__main__":
        print("Welcome to our Sync System:\n\nType \"HELP\" for more informations.\n")
        if len(sys.argv) == 3:
            set_dir(sys.argv)
    

    【讨论】:

      猜你喜欢
      • 2015-09-21
      • 1970-01-01
      • 1970-01-01
      • 2012-02-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多