@Wolron

Как код from datetime влияет на ошибку?

Есть рабочий код, который работает без ошибки:
Он вычисляет разницу между датами.
Но приходится два раза подгружать модуль import datetime

если в первую строку поставить : from datetime ,а из 6 убрать, то выходит ошибка:
datetime2 = datetime.datetime.now()
AttributeError: type object 'datetime.datetime' has no attribute 'datetime'

Вопрос: как вообще работает from datetime? И почему если этот код переместить,то выходит ошибка? Как сделать так,что бы была всего одна строчка в самом верху? : from datetime import datetime

import datetime 
            datetime2 = datetime.datetime.now()  
            datetime2 = datetime2.strftime("%Y-%m-%d %H:%M")  
            dateFormatter = '%Y-%m-%d %H:%M' 
            dateString = "2022-02-9 20:00"
from datetime import datetime 
            spisok_start_date = datetime.strptime(dateString, dateFormatter) 
            datetime2 = datetime.strptime(datetime2, dateFormatter) 
            timedelta =  datetime2 - spisok_start_date
  • Вопрос задан
  • 851 просмотр
Решения вопроса 1
SoreMix
@SoreMix Куратор тега Python
yellow
Модуль называется datetime, в нем лежит класс datetime. Никакой разницы по сравнению с обычными библиотеками, в принципе, нет. Хотите, импортируйте полностью datetime, тогда для использования методов класса datetime, придется обращаться к классу полностью: datetime.datetime.now(). Хотите, импортируйте только класс datetime, тогда будете обращаться сразу к нему: datetime.now()

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

1.
import datetime 
datetime2 = datetime.datetime.now()  
datetime2 = datetime2.strftime("%Y-%m-%d %H:%M")  
dateFormatter = '%Y-%m-%d %H:%M' 
dateString = "2022-02-9 20:00"

spisok_start_date = datetime.datetime.strptime(dateString, dateFormatter) 
datetime2 = datetime.datetime.strptime(datetime2, dateFormatter) 
timedelta =  datetime2 - spisok_start_date


2.
from datetime import datetime 
datetime2 = datetime.now()  
datetime2 = datetime2.strftime("%Y-%m-%d %H:%M")  
dateFormatter = '%Y-%m-%d %H:%M' 
dateString = "2022-02-9 20:00"

spisok_start_date = datetime.strptime(dateString, dateFormatter) 
datetime2 = datetime.strptime(datetime2, dateFormatter) 
timedelta =  datetime2 - spisok_start_date


Если больше ничего не нужно, кроме класса datetime, то логично было бы сделать from datetime import datetime, чтобы избежать вот такого вот расстянутого кода
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
22 нояб. 2024, в 12:20
10000 руб./за проект
22 нояб. 2024, в 11:53
3000 руб./за проект
22 нояб. 2024, в 11:51
20000 руб./за проект