首页 > 解决方案 > 包装到对象

问题描述

这是一个软件设计问题。我有一个这样的文件夹:

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")

我不想硬编码这个。我只想将日历文件夹中的所有日历加载到某个包装器中。也许是一个枚举类而不是一个函数?没有把握。

如果没有答案,我可以在哪里寻找这个想法或资源?

标签: pythondesign-patternsarchitecture

解决方案


您正在寻找工厂模式


推荐阅读