[英]Passing arbitrary number of arguments from list into function?
我有一個函數,它接受一個輸入,然后一個* arg包含一個兩元素元組的序列。 我還有一個SQL命令,根據我的數據庫中的內容生成這樣的元組列表。 這一切都很好,但我不知道如何將這些元組傳遞給函數。
我已經嘗試將代碼組裝成一個字符串,然后用exec()執行它,無論如何都是草率的,但是甚至不起作用,因為exec忽略了函數中的return()值(包含我需要的輸出)( )。 我已經嘗試了eval(),它不起作用,因為被調用的函數有輸入和eval無法處理的其他實際代碼; 它只評估表達式。 我不認為我可以直接調用元組列表中的函數,因為那將被視為一個參數而不是(在這個具體示例中)三個,不是嗎?
那么我應該如何將這個元組列表傳遞給我的函數,如果我有:
TupleList = [('a','b'),('c','d'),('e','f')]
Func(Argument1, *Args)
我想打電話給:
Func('ConstantValue',('a','b'),('c','d'),('e','f'))
同時仍然保留Func()的return()?
def foo(arg1, *args):
print(arg1)
for arg in args:
print(arg)
spam = [('a', 'b'), ('c', 'd'), ('e', 'f')]
foo('ConstantValue', *spam)
# or which yield same result
foo('ConstantValue', ('a', 'b'), ('c', 'd'), ('e', 'f'))
產量
ConstantValue
('a', 'b')
('c', 'd')
('e', 'f')
ConstantValue
('a', 'b')
('c', 'd')
('e', 'f')
>>>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.