python - 获取给定值对应的 "zero value"

标签 python python-2.7 types zero

在 Python 2.7 中,给定一个内置类型 t 的值,如何在不枚举所有情况的情况下计算 t 的“零值”?

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

不确定“零值”在这里是否是正确的术语,因为我在 SO 或 Google 上找不到任何答案...我浏览了 this list of magic methods没有更多的成功。

最佳答案

对于大多数类型,您可以简单地调用不带参数的构造函数。

def zero_value(x):
    if x is None:
        return None
    return type(x)()

手动处理其余部分。

关于python - 获取给定值对应的 "zero value",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33701615/

相关文章:

python-2.7 - 如何使用paramiko在python脚本中给出sftp代理命令?

java - 毫无意义的基本 Scala 错误

types - OCAML 将定义的类型与定义混淆了吗?

java - 0xFFFF 需要变短吗?

python - 如何注释可以作为属性实现的属性?

python - 如何从图形对象显示 matplotlib 图

python - 如何将 dict(zip(range(n), range(n))) 翻译成 Python 3?

python - Gstreamer 在 PLAYING 状态下更改源

python - 防止 numpy 将数值向上转换为字符串

python-2.7 - 如何在 Ubuntu 12.04 中删除 Python 版本?