我的问题很简单:我只需要将一个字符串(路径和文件名)只传递给一个模块,以便该模块中的函数使用.换句话说,函数需要一个路径(和文件名)才能工作,每次调用函数时传递该字符串都是不切实际的.
有没有一种方法我可以实际传递一次字符串(可能稍后在脚本中更改它)并保存它以某种方式保存在模块中供以后使用?
最佳答案 您只需在模块中设置全局:
variable_to_use = None
def funcA():
if variable_to_use is None:
raise ValueError('You need to set module.variable_to_use before using this function')
do_something_with(variable_to_use)
variable_to_use对模块中的所有代码都是全局的.其他代码可以这样做:
import module_name
module_name.variable_to_use = 'some value to be used'
不要试图使用module_name import variable_to_use,因为它会创建一个本地引用,然后反弹,使模块全局不变.
您可以在函数中封装全局设置:
def set_variable_to_use(value):
global variable_to_use
variable_to_use = value
并使用该函数而不是直接设置模块全局.