[英]Chaining kwargs in a function call
我有一個AND
和OR
函數來計算一個表達式。 我想將這些項目鏈接在一起,如下所示:
>>> AND(
# kwarg
Neutered=True,
# reduces/evaluates to arg/value
OR(Black=False, AND(Female=False, NOT(White=True)), AND(NOT(Female=False), OR(White=True, Tan=True))))
但是,這樣做時我收到此錯誤:
語法錯誤:位置參數跟隨關鍵字參數
這是因為OR
計算為布爾值而不是 kwarg,這是它需要傳遞的方式。 解決這個問題的好方法是什么?
只需重新排列調用以在 args 之后使用 kwargs:
AND(
OR(AND(NOT(White=True), Female=False), AND(NOT(Female=False), OR(White=True, Tan=True)), Black=False),
Neutered=True)
或者,如果可能,使用 dict 解包運算符:
AND(
Neutered=True,
**OR(Black=False, **AND(Female=False, **NOT(White=True)), **AND(NOT(Female=False), OR(White=True, Tan=True))))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.