python - 包装到对象
问题描述
这是一个软件设计问题。我有一个这样的文件夹:
api.py
calendar/
__init__.py
asia/
europe/
__init.py
germany.py
italy.py
america/
...
每个国家都有自己的日历,如下所示:
## germany.py
from some_other_library import get_calendar
munich_params = {...}
munich_calendar = get_calendar("DE",
start_time='2020-01-01',
end_time='2020-05-01',
params=munich_params)
berlin_params = {...}
berlin_calendar = get_calendar("DE",
start_time='2020-01-01',
end_time='2020-05-01',
params=berlin_params)
## italy.py
from some_other_library import get_calendar
milan_params = {...}
milan_calendar = get_calendar("IT",
start_time='2020-01-01',
end_time='2020-05-01',
params=milan_params)
rome_params = {...}
rome_calendar = get_calendar("IT",
start_time='2020-01-01',
end_time='2020-05-01',
params=rome_params)
palermo_params = {...}
palermo_calendar = get_calendar("IT",
start_time='2020-01-01',
end_time='2020-05-01',
params=palermo_params)
我想要的是所有这些国家的日历的包装。简而言之,像
## api.py
def get_calendar():
code code code
pass
#######################
> import api
> calendar = api.get_calendar("munich")
我不想硬编码这个。我只想将日历文件夹中的所有日历加载到某个包装器中。也许是一个枚举类而不是一个函数?没有把握。
如果没有答案,我可以在哪里寻找这个想法或资源?
解决方案
您正在寻找工厂模式
推荐阅读
- javascript - 将多个数组转换为具有属性的对象数组
- c++ - 当我尝试从文件中读取矩阵时,会出现各种错误,但仅使用输入的数据时工作正常
- python - 在读取文件 Python 时跳过大块行
- c - 从C中的字符串中删除所有'\'
- python - 在 Python Flask 应用程序中获取 HTTP 标头的最佳方法是什么?
- logging - 设置 Graylog:日志服务器应该在哪里以及客户端如何访问它?
- javascript - reactJS生成无法读取未定义的属性
- c++ - 如何为变量更改创建“缓冲区”延迟?IE。那么变量更改仅在一定时间后“传输”?
- c# - 找不到 NuGet 包
- c - 是否可以从 C 中的数组调用函数?