我有一长串可能需要导入的文件。我只需要其中的 1 个,而且它们都有相同的界面。(选择支付网关来处理支付)
假设我有一个表示所有网关文件名称的字典。
IE
gateways = {
'1' : 'authorize',
'2' : 'paysimple',
'3' : 'braintreepayments',
'4' : 'etc',
}
我根据数据库中的信息知道这本字典的键。因此,如果我收到网关值为 1 的支付流程请求,我知道它需要由 Authorize.net 处理。A 2 将由 Pay Simple 处理。等等。
我希望能够创建一个使用我知道的信息而不是可怕的语句列表构建的导入elif
语句。
考虑下面的简单方法:
# For the purposes of this example assume payment_gateway is defined
# elsewhere and represents the key to the dictionary
gateway_file = gateways.get(payment_gateway)
import_str = "from gateway_interface.%s import process" % gateway_file
gogo(import_str)
wheregogo
是一种使 import 语句实际导入的方法。
这样的事情可能吗?