TypeError: 'datetime.datetime' object is not callable

后端 未结 2 919
清歌不尽
清歌不尽 2021-02-14 09:08

I have some Python code that iterates through all the days between two start dates. The start date is always November 1st and the end date is always May 31st. However, the code

相关标签:
2条回答
  • 2021-02-14 09:29

    I think that the following line:

    date = datetime(year=time2, month=time3, day=time4)
    

    is the issue. Here, you are re-defining date to have a different value (that can't be called) to the date class (which could be).

    On the 'second pass through', it gets to:

    d1 = date(x,11,01)
    

    and date isn't what it used to be (it can't be called), and so you get the error.

    Maybe change variable name to be something else, e.g. dte?

    0 讨论(0)
  • 2021-02-14 09:44

    This is because you are having a variable called date that is shadowing imported datetime.date. Use a different variable name.

    Demo:

    >>> from datetime import date, datetime
    >>> date(01,11,01)
    datetime.date(1, 11, 1)
    >>> date = datetime(year=2014, month=1, day=2)
    >>> date(01,11,01)
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    TypeError: 'datetime.datetime' object is not callable
    
    0 讨论(0)
提交回复
热议问题