我有一個要發送到我的函式的變數串列。(因此該函式基于這些變數的值作業)。
一種方法是在函式中單獨傳遞每個變數,如下所示:
def my_function(var1, var2, var3, var4, ..., varn):
output = var1 var2 var3 var4 .... varn
但是,我想知道我是否可以寫這樣的東西:
def my_function(parameters):
output = parameters.var1 parameters.var2 ... parameters.varn
也就是說,有什么辦法可以將所有變數包裝在一個變數中,然后像這樣呼叫它們?
我知道上面的python代碼不正確,我只是想表達我的問題。
提前致謝
uj5u.com熱心網友回復:
有很多選擇。您必須確定哪種方式適合您的情況。
選項 1. 通過單個星號獲取多個引數
def my_function(*args):
output = sum(args)
# SAME WITH
# output = args[0] args[1] ... args[n]
#
# PASSING ARGUMENTS EXAMPLE
# my_function(10, 20, 10, 50)
選項 2. 通過雙星號獲取關鍵字引數
def my_function(**kwargs):
output = sum(kwargs.values())
# SAME WITH
# output = kwargs["var0"] kwargs["var1"] ... kwargs["varn"]
#
# PASSING ARGUMENTS EXAMPLE
# my_function(var0=10, var1=20, var2=15)
選項 3. 以串列形式獲取引數
def my_function(list_arg):
output = sum(list_arg)
# SAME WITH
# output = list_arg[0] list_arg[1] ... list_arg[n]
#
# PASSING ARGUMENTS EXAMPLE
# my_function([1, 10, 3, -10])
選項 4. 將引數作為字典獲取
def my_function(dict_arg):
output = sum(dict_arg.values())
# SAME WITH
# output = kwargs["var0"] kwargs["var1"] ... kwargs["varn"]
#
# PASSING ARGUMENTS EXAMPLE
# my_function({"var0":5, "var1":10, "var2":3})
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/370831.html
