Skip to main content
 首页 » 编程设计

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

2025年05月04日16mq0036

在 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)() 

手动处理其余部分。