Python 3.x 使用带有布尔文字错误的标识比较

Python 3.x 使用带有布尔文字错误的标识比较,python-3.x,automation,network-programming,Python 3.x,Automation,Network Programming,我试图将“priority value设置为0”,当前的实现抛出布尔文本错误(使用标识与布尔文本错误进行比较,这是一个python lint错误。这说明对布尔值使用“is”、“is not”不是一个好做法)。因此,如果我将条件更改为attr\u value=kwargs.get(attr),如果kwargs.get(attr)和isinstance(kwargs.get(attr),bool)都没有,那么优先级值“0”将被阻止。一种更简单的方法可能是使用dict.get(key,default)

我试图将“priority value设置为0”,当前的实现抛出布尔文本错误(使用标识与布尔文本错误进行比较,这是一个python lint错误。这说明对布尔值使用“is”、“is not”不是一个好做法)。因此,如果我将条件更改为
attr\u value=kwargs.get(attr),如果kwargs.get(attr)和isinstance(kwargs.get(attr),bool)都没有
,那么优先级值“0”将被阻止。

一种更简单的方法可能是使用
dict.get(key,default)
,以及
,这将导致虚假价值成为您选择的另一个价值:

cmd =[]
def SetOSPFInterface(**kwargs):
    attribute_map = {
        'priority': 'priority',
        'passive': 'passive',
        'interface_type': 'interface-type',
        'metric': 'metric',
    }
    for attr, cfg_expr in attribute_map.items():
        attr_value = kwargs.get(attr) if kwargs.get(attr) is not False else None
        print(attr_value, attr)
        if attr_value is not None:
            if isinstance(attr_value, bool):
                attr_expr = ''
            else:
                attr_expr = ' %s' % attr_value
            cmd.append('set %s%s' % (cfg_expr, attr_expr))

    return cmd
print(SetOSPFInterface(priority=0))

请修复格式并发布整个错误消息。当值作为“0”发送时,这对优先级变量没有帮助
attr_value = kwargs.get(attr, None) or None