簡體   English   中英

Python:定義一個函數的參數,其中包括另一個函數的參數

[英]Python: define arguments of a function which include the arguments of the other function

請讓我知道是否有重復的郵件(我相信有),我將刪除該帖子。 我只是不確定這個問題的行話。

在編寫包含另一個已經定義的其他函數original_func的新函數augmented_func的功能時,我試圖避免定義已經在original_func參數:

def original_func(a1, a2 ,a3):
    print(a1, a2, a3)

def augmented_func(b, a1, a2, a3):
    print(original_func(a1, a2, a3), b)

如何避免寫a定義時的augmented_func ,並簡化尤其是當論據數量original_func超過,比如說,三中的例子嗎?

對任意數量的位置參數使用*表示法:

def augmented_func(b, *args):
    print(original_func(*args), b)

augmented_func('b', 1, 2, 3)

或使用帶有**關鍵字參數:

def augmented_func(b, **kwargs):
    print(original_func(**kwargs), b)

augmented_func('b', a1=1, a2=2, a3=3)

我想你在找什么

def original_func(a1, a2 ,a3):
    print(a1, a2, a3)

def augmented_func(b, *args):
    print(original_func(*args), b)

您可以稱其為augmented_func(1, 2, 3, 4)

*args**kwargs是傳遞可變數量的參數並將其傳遞給其他內部函數調用的好方法。

Python文檔以獲取更多信息。

暫無
暫無

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

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