파이썬 함수 호출 내부리스트에서 추출 변수에있다

Don212 :

나는 공통가 만든 SDK에 함수 호출을 실행 기능을 만들려고 해요

FUNC : 이 SDK 기능은 내 첫 번째 매개 변수로 전달되고 함수 자체는 편집 할 수 없습니다
요청 : 이 모든 최종 지점이 기대를 생성하는 객체이다
: 인수를 전달 SDK 기능에 따라 달라집니다 매개 변수 목록을

SDK 기능 서명
def create_a(self, create_type_a_details):
def create_b(self, extra_val_one create_type_b_details):
def create_c(self, extra_val_one, extra_val_two, create_type_c_details):


현재 구현

def create_resource(func, request, *args):

        try:
          if len(args) == 1:
            response = func(args[0], request)
          elif len(args) == 2:
            response = func(args[0], args[1], request)
          else:
            response = func(request)
        return response.data

    except ServiceError as e:
        log.error("Failed create operation {message}".format(message=e.message))
        raise e


나는 분명한 이유 위의 솔루션을 좋아하지 않는다. 또 다른 SDK는 요청 개체 전에 세 번째 매개 변수를 사용하는 함수를 만드는이 있다면, 나는 새로운 ELIF를 추가해야합니다.

내가 값을 추출하기 위해 SDK 기능을 편집하지 않고 매개 변수의 동적 세트와 SDK 함수를 호출 할 수있는 방법이 있나요? 나는 함수 호출의 람 바어의 내부를 사용할 수 있습니까?

감사 Donagh

azro :

당신은 확장 할 수 있습니다 args다른 매개 변수로 각 요소를 제공하기 위해 :

def create_resource(func, request, *args):
    response = func(*args, request)
    return response.data

추천

출처http://10.200.1.11:23101/article/api/json?id=388195&siteId=1