【发布时间】:2019-03-11 10:45:31
【问题描述】:
我正在编写一个程序,该程序根据 Excel 表中的某些值进行 API 调用。将检查表中的 2 个条件:
- 语言
- 提供者
根据这两个值,API 调用需要一组不同的常量:
def run_workflow(provider, language, workflow):
if provider == 'xxxx' and language == 0:
wf_ready = provider_ready
wf_unverified = provider_unverified
wf_active = provider_active
wf_another = provider_another
wf_closed = provider_closed
wf_wrongid = provider_wrongid
elif provider == 'yyyy' and language == 0:
wf_ready = provider_ready
wf_unverified = provider_unverified
wf_active = provider_active
wf_another = provider_another
wf_closed = provider_closed
wf_wrongid = provider_wrongid
elif ...
if workflow == 'ready':
response = requests.post(API + wf_ready),headers=header, data=json.dumps(conversation))
elif workflow == 'unverified':
response = requests.post(API + wf_unverified),headers=header, data=json.dumps(conversation))
elif ...
有 2 种提供者和 7 种不同的语言,我试图找出处理这种情况的最有效(和 Pythonic 方式)并想出为每种语言创建一个类:
class Workflow_Language():
def english(self):
self.provider_unverified = 1112
self.provider_ready = 1113
self.provider_active = 1114
self.provider_vip = 1115
def russian(self):
self.provider_unverified = 1116
self.provider_ready = 1117
self.provider_active = 1118
self.provider_vip = 1119
def ...
...
有没有更好的方法来处理这个问题?
【问题讨论】:
-
也许从某种配置文件中读取这些值。
标签: python python-3.x function class