Я думаю, что решил подобную проблему. Когда я работал над версиями API
, например, если запрос пользовательского агента содержит v1 в параметрах URL, инициализируйте API-интерфейсы v1 / классы менеджера или v2 и т. Д.
Для таким образом, мы можем использовать частичную реализацию на шаблоне адаптера , создав карту для набора классов / методов в вашем случае.
class OnlineMethod(object):
...
def __init__(self, url):
pass
def create_drive_time_polygons(self, *args, **kwargs):
pass
...
action_method_map = {
'CreateDriveTimePolygons': OnlineMethod().create_drive_time_polygons,
}
action_method_map['CreateDriveTimePolygons'](Input_Location=(25,-34), Drive_Times="5,12,31", Output_Drive_Time_Polygons=[1,2,3])
action_method_map[action_from_url](Input_Location, Drive_Times, Output_Drive_Time_Polygons)
Имеет ли это смысл?