能否让每次import都生成独立可配置的模块实例?
实现独立配置的类库实例自动导入
假设有一个支持不同输入输出格式的类库,应用程序可能会在这些格式间切换,本文仅以不同语言为例进行说明。
直接设置全局格式的方式
一种直接设置格式的实现如下:
import mytimes mytimes.set_input_format("German") mytimes.Days("1.Mai", "31.Dezember") mytimes.set_input_format("ISO8601") mytimes.Date("2023-11-02")
全局状态的弊端
全局状态存在明显问题,如果导入语句未按常规分组,很容易出现意外错误:
import mytimes mytimes.set_input_format("German") from . import foo # 该模块中执行了mytimes.set_input_format("English") mytimes.func("1.Juni") # 该格式在英文配置下无效
基于实例的改进方案
因此,使用实例化的方式更为合理,每个实例维护自己的独立配置:
from mytimes_v2 import MyTimes mytimes = MyTimes() mytimes.set_input_format("German")
核心疑问
能否实现该流程的自动化?模块能否通过from mytimes_v3 import mytimes获取独立实例,且该实例的配置不受其他导入实例的影响?
内容的提问来源于stack exchange,提问作者VPfB
相关产品推荐
相关产品推荐

