如何编辑子目录中的 .py 配置文件?

How do I edit a .py config file in a subdirectory?

我正在尝试读取和编辑 python 中的配置文件。这是文件结构:

main.py
folder
-> __init__.py
-> module.py
-> config.py

我有四个文件:

main.py

import folder.config as config
import folder.module as module

if __name__ == "__main__":
    config.x = 2
    module.foo()

init.py

import os, sys; sys.path.append(os.path.dirname(os.path.realpath(__file__)))

module.py

import config

def foo():
    print("Result from function: " + str(config.x))

config.py

x = 10

我希望调用 'foo' 的结果为“2”,但它却打印出“10”,即配置文件的默认值。我如何确保对 'main.py' 中的 'config.py' 所做的更改持续到其他模块?

如有任何帮助,我们将不胜感激!

为什么不使用 JSON 或 csv 或任何其他格式来存储值?

编辑: 我建议采用以下解决方案:

main.py

import folder.config as config
import folder.module as module

if __name__ == "__main__":
    config.set_x(2)
    module.foo()

init.py

import os, sys; sys.path.append(os.path.dirname(os.path.realpath(__file__)))

module.py

import config

def foo(): print(f"Result from function: { str(config.get_x()) }")

config.py

import json

def read_json():
    with open("data.json") as f: d = json.load(f)
    return d

def write_json(d):
    with open('data.json', 'w') as f: json.dump(d, f)

try:
    data = read_json()
except:
    data = {}
    write_json({})

def set_x(val):
    data["x"] = val
    write_json(data)

def get_x():
    print(data)
    return data["x"]