具体文字不好表达,直接上例子吧
# 2-3 个内部的 .py module, 调用官方 Library, 例如以下 AWS 和 GCP 的
# 每个 module 命名均为 "服务商代号_controller", 且内部 method 都一样
import aws_controller
import gcp_controller
# main.py 中通过不同 provier 名字控制
def check_instances(pro):
provider_controller = `pro` + "_controller"
provider_account = `pro` + "_account"
instances = provider_controller.check(provider_account)
return instances
上面例子中 provider_controller
和 provider_account
两个固定名称的变量会被下面引用
运行例如 check_instance('aws')
的时候,要求 provider_controller
此时对应 import 的 aws_controller
且 provider_account
对应数据库里面的 aws_account
也就是说在 pass in 不同的 string (名称) 的时候要求更改两个变量的实际调用
网上看了似乎有一个类似于 vars()["{}_controller".format(provider)]
的办法,在 python shell 里面似乎可用但是实际写在 code 里面的时候会提示 key error
有什么更好的办法么?
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.