如何可靠地检查是否为对象定义了属性?

时间:2013-07-25 10:32:43

标签: python django

有时我会创建定义了x属性的对象,有时我不会。

class Object(models.Model):
    x = models.IntegerField(blank=True, null=True)

我想创建一个我的对象的子集,而我的应用中的某个点未定义x

[o for o in os if not hasattr(o,'x')]

我正在玩shell,我没有得到我想要的结果。

>>> o = Object()
>>> o.save()
>>> o.id
1L
>>> hasattr(o,'x')
True

检查x == None是否足够?

1 个答案:

答案 0 :(得分:5)

是的,检查x is None就足够了。

Object的任何实例都将始终具有属性x,无论您是否设置了它 - 如果您没有设置它,它只会是None