在 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 的一些示例,它使用起来很简单。
祝你好运
假设我有一个 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 的一些示例,它使用起来很简单。
祝你好运