Python 3.x 使用带有布尔文字错误的标识比较
我试图将“priority value设置为0”,当前的实现抛出布尔文本错误(使用标识与布尔文本错误进行比较,这是一个python lint错误。这说明对布尔值使用“is”、“is not”不是一个好做法)。因此,如果我将条件更改为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)
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