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

Python 如何可靠地检查是否为对象定义了属性?,python,django,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')] 我一直在玩空壳游戏,但我没有得到我想要的结果 >>> o = Object() >>> o.save() >>>

有时我使用定义的x属性创建对象,有时不使用

class Object(models.Model):
    x = models.IntegerField(blank=True, null=True)
我想创建我的应用程序中某个点未定义x的对象子集:

[o for o in os if not hasattr(o,'x')]
我一直在玩空壳游戏,但我没有得到我想要的结果

>>> o = Object()
>>> o.save()
>>> o.id
1L
>>> hasattr(o,'x')
True
检查x==None是否足够?

是,检查x是否None是否足够

对象的任何实例都将始终具有属性x,无论您是否设置了它-如果您没有设置它,它将仅为“无”。

是的,检查x为“无”就足够了

对象的任何实例都将始终具有属性x,无论您是否设置了它-如果您没有设置它,它将仅为None。

应该使用x来完成,即None,请参见PEP 8[应该使用x来完成,即None,请参见PEP 8[