python – 将字符串传递给模块“一次”

我的问题很简单:我只需要将一个字符串(路径和文件名)只传递给一个模块,以便该模块中的函数使用.换句话说,函数需要一个路径(和文件名)才能工作,每次调用函数时传递该字符串都是不切实际的.

有没有一种方法我可以实际传递一次字符串(可能稍后在脚本中更改它)并保存它以某种方式保存在模块中供以后使用?

最佳答案 您只需在模块中设置全局:

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

并使用该函数而不是直接设置模块全局.

点赞