【发布时间】:2015-09-29 05:29:23
【问题描述】:
我可以检查python列表或字典是否为空
lis1, dict1 = [], {}
# similar thing can be done for dict1
if lis1:
# Do stuff
else:
print "List is empty"
如果我尝试对我的类对象执行此操作,即通过键入 if my_object: 检查我的对象属性是否为非空,这始终评估为 True
>>> class my_class(object):
... def __init__(self):
... self.lis1 = []
... self.dict1 = {}
...
>>> obj1 = my_class()
>>> obj1
<__main__.my_class object at 0x10c793250>
>>> if obj1:
... print "yes"
...
yes
我可以专门编写一个函数来检查我的对象属性是否为非空,然后调用if obj1.is_attributes_empty():,但我更想知道if 如何评估standard data-types,如list 和dict True 或 False 取决于它们包含的项目或为空的项目。
如果我想用我的类对象实现这个功能,我需要重写或更改哪些方法?
【问题讨论】:
-
试试这个:
if obj1.lis1: print "yes" -
是的,我可以....但是如果它们的属性很多.....仍然可以通过编写 if obj1.attr1 和 obj1.attr2 .... 等来实现。 ..但我想避免这种情况....我更感兴趣的是知道 if 如何评估 python 的标准数据类型 ....
标签: python if-statement