“NoneType”对象没有“month”属性

2024-10-04 03:23:31 发布

您现在位置:Python中文网/ 问答频道 /正文

我想得到下一个datetime日期值的月份,但是我得到了以下错误

i_real = (actividad.fecha_real_ini.month-1)
while i_real <=(actividad.fecha_real_fin.month-1):
      meses_real[i_real] = True
      i_real+=1

我得到以下错误。在

^{pr2}$

Tags: truedatetime错误realini月份whilefin
1条回答
网友
1楼 · 发布于 2024-10-04 03:23:31

正如评论所提到的,要么actividad.fecha_real_ini为None,要么actividad.fecha_real_fin为None。在访问对象之前,请确保不需要访问对象的属性。在

您还可以为此使用getattrpython内置;并在AttributeError的情况下提供一个合理的默认值

getattr的签名是:getattr(object, attribute_name, default=None)

例如,可以将其重写为:

i_real = getattr(actividad.fecha_real_ini, 'month', 0)  # I am using 0 as my default; so i_real will be -1
while i_real <= (getattr(actividad.fecha_real_fin, 'month', 0)):
    meses_real[i_real-1] = True
    i_real += 1

相关问题 更多 >