datetime.datetime не имеет атрибута «datetime» - PullRequest
0 голосов
/ 24 января 2020

Я пытаюсь определить текущее время до или после указанной даты, используя этот код:

from datetime import datetime

def presidentvoting(self):
    electiondate = datetime.datetime(2020, 1, 31, 0, 0)
    current_time = datetime.now()
    if current_time > electiondate:
        print("You can no longer vote")

Но я получаю эту ошибку:

electiondate = datetime.datetime(2020, 1, 31, 0, 0)
AttributeError: type object 'datetime.datetime' has no attribute 'datetime'

Что я делаю не так?

1 Ответ

0 голосов
/ 24 января 2020

datetime - это модуль, который содержит функцию 1 , которая также называется datetime.

. Вы можете использовать ее следующим образом:

import datetime
#      ^^^^^^^^
#      the module

x = datetime.datetime(...)
#            ^^^^^^^^ the function
#   ^^^^^^^^ the module

Здесь datetime относится к модулю, а datetime.datetime относится к функции в модуле.

Или вы можете импортировать функцию только из модуля, например:

from datetime import datetime
#    ^^^^^^^^        ^^^^^^^^
#    the module      the function

x = datetime(...)
#   ^^^^^^^^ the function

Вы использовали смесь этих двух, которая не работает:

from datetime import datetime
#    ^^^^^^^^        ^^^^^^^^
#    the module      the function

x = datetime.datetime(...)
#            ^^^^^^^^ this does not exist
#   ^^^^^^^^ the function

В случае использования используется

import datetime
from datetime import datetime

, затем после первой строки datetime будет означать модуль (который сам по себе был бы правильным), но вторая строка перезапишет это, и datetime больше не будет ссылаться на модуль, а на функцию.


1 На самом деле datetime.datetime - это класс, а не функция, но для целей этого ответа это не имеет значения.

...