[英]passing keyword argument to inner function when outer function has keyword argument with the same name
我有兩個大致這樣定義的函數:
def func_inner(bar=0):
print('inner bar:', bar)
def func_outer(bar=-1, *args, **kwargs):
print('outer bar:', bar)
func_inner(*args, **kwargs)
有沒有辦法調用func_outer
並為它提供兩個bar
值 - 一個用於func_outer
,另一個傳遞給func_inner
? 調用func_outer(bar=1,bar=2)
顯然不起作用。
可以通過將bar
值指定為位置參數來解決該問題,例如func_outer(1,2)
,但我想將它們指定為兩個函數的關鍵字參數。
是否有完全在調用方的解決方案(即不改變功能)?
您不能將具有相同名稱的兩個參數傳遞給函數。 因此,您將無法在kwargs
中擁有鍵"bar"
。
因此,您不能在不修改這兩個函數的情況下傳遞此參數。
這是在裝飾器中彈出的那種代碼。 在這種情況下,您可能希望使外部函數currified 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.