我正在编写一个实用程序,我希望在其中拥有改变函数运行方式的全局变量。默认情况下,我希望所有函数都遵循一种风格,但在某些情况下,我还希望能够强制函数操作的方式。
假设我有一个文件 Script_Defaults.py
USER_INPUT = True
在另一个 python 文件中,我有很多这样的函数:
from Script_Defaults import USER_INPUT
def DoSomething(var_of_data, user_input = USER_INPUT):
if user_input:
... #some code here that asks the user what to change in var_of_data
.... # goes on to do something
我在这里面临的问题是默认参数仅在文件启动时加载一次。我希望能够设置USER_INPUT
为False
或True
在程序运行期间。为了获得这种行为,我目前正在像这样使用它......
from Script_Defaults import USER_INPUT
def DoSomething(var_of_data, user_input = None):
if user_input is None:
user_input = USER_INPUT
if user_input:
... #some code here that asks the user what to change in var_of_data
.... # goes on to do something
这似乎是很多不必要的代码,特别是如果我有很多条件,比如USER_INPUT
,以及许多需要它们的函数。有没有更好的方法来获得这个功能,或者这是唯一的方法?