簡體   English   中英

在python中是否可以從函數調用中的列表中提取變量

[英]In python is it possible to extract variables from a list inside a function call

我正在嘗試創建一個通用的創建函數來執行對 SDK 的函數調用

func: SDK函數作為我的第一個參數傳遞,函數本身無法編輯
請求:這是每個創建端點都期望的對象
args:參數列表會根據傳遞的 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 函數來提取值? 我可以在函數調用中使用 Lamba 嗎?

謝謝多納

您可以擴展args以將每個元素作為不同的參數:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM