TelenkovDmitry 8 luni în urmă
părinte
comite
8ebe0e50f7
1 a modificat fișierele cu 43 adăugiri și 0 ștergeri
  1. 43 0
      courses/python_oop/dunder_method/misc.py

+ 43 - 0
courses/python_oop/dunder_method/misc.py

@@ -0,0 +1,43 @@
+'''
+Таким образом, разница между __str__ и __repr__ заключается в целях
+использования. __str__ предназначен для представления объекта в читаемой
+форме, а __repr__ предназначен для представления объекта в точном и воспроизводимом виде.
+'''
+
+class Lion:
+    def __init__(self, name):
+        self.name = name
+
+    '''Как видят объект разработчики'''
+    def __repr__(self) -> str:
+        return f'The name Lion - f{self.name}'
+
+    '''Как видят объект пользователи. Функции print, str'''
+    def __str__(self) -> str:
+        return f'Lion - f{self.name}'
+
+class Person:
+
+    def __init__(self, name, surname, gender='male'):
+        self.name = name
+        self.surname = surname
+        if gender not in ['male', 'female']:
+            print("Не знаю, что вы имели в виду? Пусть это будет мальчик!")
+            self.gender = 'male'
+        else:
+            self.gender = gender
+
+    def __str__(self):
+        if self.gender == 'male':
+            return f"Гражданин {self.surname} {self.name}"
+        else:
+            return 
+
+
+def main():
+    lion = Lion('Simba')
+    print(lion) # __str__
+    print(lion) # __str__
+
+if __name__ == '__main__':
+    main()