Найти - Пользователи
Полная версия: Добавление даты с клавиатуры,как атрибут класса
Начало » Python для новичков » Добавление даты с клавиатуры,как атрибут класса
1
Typical_beginer
Требуется ввести 2 даты в формате,например 11.12.1990
В стандартном вводе с клавиатуры datetime такой формат(гггг-мм-дд),с помощьюstrftime(“%m/%d/%Y”) как я понял можно дату вывести таком формате 11.12.1990.

Но как правильно ввести дату с клавиатуры в объект класса?
Отрывок проблемного кода:

 import datetime
class Bookorder:
 
def __init__(self,surnm,dateorder,datetakeorder):
                """Инициализация атрибутов класса - фамилия,дата заказа книги,дата выдачи книги"""
                self.surn = input('Фамилия заказчика книг: ')
                self.dateorder = input('Дата заказа книги(дд-мм-гггг): ')
                self.dateorder=dateorder.split('.')
                self.datetakeorder= input('Дата выдачи книги(дд-мм-гггг): ')
                self.datetakeorder=datetakeorder.split('.')
AD0DE412
 import datetime
class Bookorder:
    """Инициализация атрибутов класса -
        дата заказа книги,дата выдачи книги"""
    cout = 0
    dateorder = input(
        'Дата заказа книги(дд-мм-гггг): ').split('.')
    datetakeorder= input(
        'Дата выдачи книги(дд-мм-гггг): ').split('.')
    def __init__(self):
        """Инициализация атрибутов экземпляра - фамилия"""
        self.surn = input('Фамилия заказчика книг: ')
        Bookorder.cout += 1
#создаем 10 экземпляров класса обращаем внимание на счетчик (cout)
exampl = []
for i in range(10):
    qwerty = Bookorder()
    exampl.append(qwerty)
    print(qwerty.cout)
#текущее состояние count во всех экземплярах
for i in exampl:
        print(i.cout)
https://pythononline.ru/osnovy/atribut-klassa-ekzemplyara-python
xam1816
У вас есть класс
 class Bookorder
,у него есть атрибуты без которых он не был бы этим классом
 self.surnm
self.dateorder
self.datetakeorder

чтобы создать экземпляр этого класса,нужно задать этим атрибутам значения,характерные для создаваемого экземпляра.

Для этого делаем инициализацию
 def __init__(self, surnm, dateorder, datetakeorder):
"""Инициализация атрибутов класса - фамилия,дата заказа книги,дата выдачи книги"""
    self.surnm = surnm
    self.dateorder = dateorder
    self.datetakeorder = datetakeorder

Нужно четко понимать,каким типом данных будут переменные

Результат работы этого класса - это создание сущности,которая хранит в себе свои уникальные переменные этих атрибутов.
Например
 book_order_1 = Bookorder("Ебанько",'12.12.2019','20.02.2020')
print(book_order_1.surnm) # Ебанько
print(book_order_1.dateorder) #12.12.2019
Typical_beginer
Но как правильно ввести дату с клавиатуры в объект класса?
Получением данных с консоли занимаются другие системы,результат которых-данные в нужном виде,
к примеру
 def get_surname():
	my_str = input('Фамилия заказчика книг: ')
	"""приводим строковые данные под нужный тип,проверяем корректность и тд и тп"""
	return my_str # возвращаем подготовленную переменную
def get_dateorder():
	 date = input('Дата заказа книги(дд-мм-гггг): ')
	 """приводим строковые данные под нужный тип,проверяем корректность и тд и тп"""
	 return date # возвращаем
def get_datetakeorder():
	date = input('Дата выдачи книги(дд-мм-гггг): ')
	"""приводим строковые данные под нужный тип,проверяем корректность и тд и тп"""
	return date  # возвращаем
book_order_1 = Bookorder(get_surname(),get_dateorder(),get_datetakeorder())
print(book_order_1.surnm) # данные которая вернула функция get_surname()
print(book_order_1.dateorder) #
print(book_order_1.datetakeorder)#



doza_and
Если я правильно понял то тут две проблемы.

Первая как в программе хранить дату. Я думаю что везде в программе должны быть datetime.datetime() обекты

Вторая как считать с клавиатуры данные.
 fmt="%m/%d/%Y"
line = input(f"enter datetime in format {fmt}") # считать строку
t=datetime.datetime.strptime(line,fmt)  # воспользоваться методом для перевода строки во внутреннее представление времени
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB