가져올 필요가있는 파일의 목록이 많습니다. 나는 오직 그들 중 오직 하나만 필요로 할 것이고 그들은 모두 같은 인터페이스를가집니다. (지불 처리를위한 지불 게이트웨이 선택)변수 "interpolation"을 사용하여 import 문을 만듭니다.
모든 게이트웨이 파일의 이름을 나타내는 사전이 있다고 가정하십시오. 즉
gateways = {
'1' : 'authorize',
'2' : 'paysimple',
'3' : 'braintreepayments',
'4' : 'etc',
}
나는 데이터베이스의 정보를 기반으로이 사전에 키를 알고있다. 그래서 게이트웨이 값 1로 지불 프로세스 요청을 받으면 Authorize.net에서 처리해야한다는 것을 알고 있습니다. 2는 Pay Simple으로 처리됩니다. 기타
elif
문장의 끔찍한 목록이 아니라 내가 아는 정보로 작성된 가져 오기 문을 만들 수 있기를 원합니다.
gogo
실제로 수입에 import 문을 야기 할 수있는 방법이다
# 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)
.
그런 것이 가능합니까?
당신의 프로세스는 오직 하나의 지불만을 처리하고 종료합니까? 특이하게 들립니다. –
나는 그게 특이한 방법인지 모르겠습니다. 온라인 쇼핑을하고 체크 아웃을 요청하는 경우 왜 둘 이상의 게이 트웨이로 트랜잭션을 처리합니까? – Rico
한 번에 하나씩 만 사용하지만 일반적으로 온라인 쇼핑은 수명이 다한 많은 요청을 처리하는 장기 실행 프로세스에서 처리됩니다. –