获取给定值对应的"zero value"
Getting the "zero value" corresponding to a given value
在 Python 2.7 中,给定一个内置类型 t
的值,我如何在不枚举所有情况的情况下计算 t
的 "zero value" ?
def zero_value(x):
if isinstance(x, dict):
return dict()
if isinstance(x, int):
return 0
if isinstance(x, bool):
return False
if x is None:
return None
# ...
assert zero_value({1: 2, 3: 4}) == {}
assert zero_value(3) == 0
assert zero_value(None) == None
assert zero_value(True) == False
不确定 "zero value" 是否是正确的术语,因为我找不到关于 SO 或 Google 的任何答案...我浏览了 this list of magic methods 但没有取得更多成功。
对于大多数类型,您可以简单地调用不带参数的构造函数。
def zero_value(x):
if x is None:
return None
return type(x)()
手动处理其余部分。
在 Python 2.7 中,给定一个内置类型 t
的值,我如何在不枚举所有情况的情况下计算 t
的 "zero value" ?
def zero_value(x):
if isinstance(x, dict):
return dict()
if isinstance(x, int):
return 0
if isinstance(x, bool):
return False
if x is None:
return None
# ...
assert zero_value({1: 2, 3: 4}) == {}
assert zero_value(3) == 0
assert zero_value(None) == None
assert zero_value(True) == False
不确定 "zero value" 是否是正确的术语,因为我找不到关于 SO 或 Google 的任何答案...我浏览了 this list of magic methods 但没有取得更多成功。
对于大多数类型,您可以简单地调用不带参数的构造函数。
def zero_value(x):
if x is None:
return None
return type(x)()
手动处理其余部分。