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

标签 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 是否足够?

最佳答案

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

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

关于python - 如何可靠地检查是否为对象定义了属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17855556/

相关文章:

python - 基于 Django + Celery 的应用程序的动态(即运行时可配置)日志配置

python - 如何使用python求解现实生活中的差分方程

python - 切换字典键

python - 与之前的 "if"语句具有相同缩进的语句将始终执行?

python - Django 创建和更改 mysql 数据库以供学习之用

javascript - 创建购物 list Web 应用程序

python - 如果任务没有运行超过 10 分钟,如何重新安排任务?

python - 在使用 manage.py runserver 时将堆栈跟踪打印到标准输出上的 Django 错误

python - “ascii”编解码器无法对位置 5 : ordinal not in range(128) error 中的字符 u'\u2019' 进行编码

python - 在为 django 模型创建表单时使用 CreateView 和 forms.Modelform 之间的区别?