misc.py 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. '''
  2. Таким образом, разница между __str__ и __repr__ заключается в целях
  3. использования. __str__ предназначен для представления объекта в читаемой
  4. форме, а __repr__ предназначен для представления объекта в точном и воспроизводимом виде.
  5. '''
  6. class Lion:
  7. def __init__(self, name):
  8. self.name = name
  9. '''Как видят объект разработчики'''
  10. def __repr__(self) -> str:
  11. return f'The name Lion - f{self.name}'
  12. '''Как видят объект пользователи. Функции print, str'''
  13. def __str__(self) -> str:
  14. return f'Lion - f{self.name}'
  15. class Person:
  16. def __init__(self, name, surname, gender='male'):
  17. self.name = name
  18. self.surname = surname
  19. if gender not in ['male', 'female']:
  20. print("Не знаю, что вы имели в виду? Пусть это будет мальчик!")
  21. self.gender = 'male'
  22. else:
  23. self.gender = gender
  24. def __str__(self):
  25. if self.gender == 'male':
  26. return f"Гражданин {self.surname} {self.name}"
  27. else:
  28. return
  29. def main():
  30. lion = Lion('Simba')
  31. print(lion) # __str__
  32. print(lion) # __str__
  33. if __name__ == '__main__':
  34. main()