Skip to main content
 首页 » 编程设计

python之是否有 Django 函数可以计算 None 对象上的对象

2024年11月01日21zdz8207

是否有 Django 内置函数返回查询集中的项目数,如果对象为 None 则返回 0?

我的期望:

thefunction([obj1, obj2]) 
>>> 2 
obj1 = None 
thefunction(obj1) 
>>> 0 

我尝试了 len() python 函数和 count() Django 方法,但它们不适用于 None 对象(我理解这种行为)。

如果没有这个方法,我就自己写,就是不想重新发明轮子。

编辑:我自己写的,但我仍然想知道(学习)这个函数在 Python 中是否存在 :)

def len_none(iterable): 
    ''' Return the len of an object, and 0 if object is None or empty ''' 
    if iterable: # object exists and is not empty 
        return len(iterable) 
    else: 
        return 0 

谢谢!

请您参考如下方法:

如果查询集为空,则调用 len 将返回 0。对于空查询集,查询集不会返回 None。例如,如果我有 5 个图像:

>>> len(Images.objects.none()) == 0 
True 
>>> len(Images.objects.all()) == 5 
True 

我不认为有什么可以具体地满足您的要求,但是有很多方法可以实现。这是一个:

>>> one = [1, 2, 3] 
>>> two = None 
>>> len(one or []) 
3 
>>> len(two or []) 
0