在 python 中如何在导入模块之前更改变量的值?

How to change the value of a variable before importing a module in python?

假设我有一个 config.py 文件,其中包含一些变量,

# config.py
LIFE = 1
MONEY = 200

而且我将不得不导入一个在自身内部使用这些变量的函数,

# game.py
from config import LIFE, MONEY

def live():
    if MONEY < 1000:
        print("Money:", MONEY)
        return 'GAME OVER'
    
    else:
        print('Money:', MONEY)
        return 'LIVED ONE DAY'

假设我进入了测试阶段,我必须测试 'game.live' 函数。但是我在 game.py 或 config.py 中都没有写权限。你认为我如何在调用 'game.live' 函数之前更改 MONEY 变量的值,以便 MONEY 的值在 'game.live' 函数中也发生变化?

例如,

# test.py
from config import MONEY, LIFE
MONEY = 20000000000000

from game import live
print(live())

>> Money: 20000000000000
>> LIVED ONE DAY

如果你改变事情的运作方式,那么就可以测试:

# game.py
import config

def live():
    if config.MONEY < 1000:
        print("Money:", config.MONEY)
        return 'GAME OVER'
    
    else:
        print('Money:', config.MONEY)
        return 'LIVED ONE DAY'

同改测试:

# test.py
import config
config.MONEY = 20000000000000

from game import live
print(live())

按要求输出

我觉得最好的办法就是用数据库和文件管理他的内容

您可以通过搜索“sqlite3 示例 python”找到 python 的一些示例,它使用起来很简单。

祝你好运