我只是将 dict 的setitem方法的默认行为扩展为如下所示
class SafeSwapDict(dict):
def __setitem__(self, key, value):
if isinstance(key, collections.Hashable):
super(SafeSwapDict, self).__setitem__(key, value)
else return False
return True
当我调用该方法时,我想获得这些返回值,但我似乎找不到转机,因为
a = SafeSwapDict()
print a['1'] = 132
不会工作(它预计=
是==
)
还
a = SafeSwapDict()
w = a['1'] = 132
print w
将输出 132(它将首先执行语句的右侧(a['1'] = 132
),然后将值复制到 w,而不是方法的返回值)
以下工作,但它并不是真正有用(如果您不能按预期使用运算符,为什么要重载它?)
print dict_out.__setitem__(1, 132)
还有其他建议吗?PS我不允许使用异常处理:)