簡體   English   中英

在函數調用中鏈接 kwargs

[英]Chaining kwargs in a function call

我有一個ANDOR函數來計算一個表達式。 我想將這些項目鏈接在一起,如下所示:

>>> 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.

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