Это происходит потому, что вы используете date.fromisoformat
, но '01-01-2000'
не в этом формате.
Будет работать следующее:
import datetime
self.birthdate = datetime.datetime.strptime(birth, '%d-%m-%Y').date()
С другой стороны, ваш __repr__
также неверен. Обязательно приведите self.number
и self.birthdate
(т.е. str(self.number)
и str(self.birthdate)
):
def __repr__ (self):
return '{firstname:' + str(self.firstname) + ', lastname:' \
+ str(self.lastname) + ',' 'number:' \
+ str(self.number) + ',' 'birth:' \
+ str(self.birthdate) + '}'
Наконец, вы неправильно вызываете класс вместо созданного экземпляра.
Вместо
o = student ('My', 'Name', '123456', '01-01-2000')
print(o)
student.grade_entry()
student.put_entry()
вы должны использовать:
o = student ('My', 'Name', '123456', '01-01-2000')
print(o)
o.grade_entry()
o.put_entry()
Кроме того, put_entry
должен вызывать self.grade_entry()
вместо student.grade_entry()
.