Advertisement
Nenogzar

Untitled

Jul 3rd, 2024
665
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 3.92 KB | None | 0 0
  1. class Flower:
  2.     def __init__(self, name: str, water: int, is_happy=False):
  3.         self.name = name
  4.         self.water_requirements = water
  5.         self.is_happy = is_happy
  6.  
  7.     def water(self, quantity):
  8.         if quantity >= self.water_requirements:
  9.             self.is_happy = True
  10.  
  11.     def status(self):
  12.         return (f"{self.name} is happy") if self.is_happy else (f"{self.name} is not happy")
  13.  
  14.  
  15. flower = Flower("Lilly", 100)
  16. flower.water(50)
  17. print(flower.status())
  18. flower.water(60)
  19. print(flower.status())
  20. flower.water(100)
  21. print(flower.status())
  22.  
  23.  
  24. """
  25. Как е по правилно да се иницилизира:
  26.  
  27. def __init__(self, name: str, water: int, is_happy=False):
  28.        self.name = name
  29.        self.water_requirements = water
  30.        self.is_happy = is_happy
  31.  
  32. или  :
  33.  
  34. def __init__(self, name,water_requirements):
  35.        self.name = name
  36.        self.water_requirements = int(water_requirements)
  37.        self.is_happy = False
  38.  
  39.  
  40. питам за self.is_happy
  41.  
  42.  
  43. Изборът между двете варианта зависи от това какво искате да бъде стойността на is_happy,
  44.    когато не е зададена при инициализация на обекта.
  45.  
  46. 1. Вариант с подразбираща се стойност в аргумента на метода __init__:
  47.  
  48. def __init__(self, name: str, water: int, is_happy=False):
  49.    self.name = name
  50.    self.water_requirements = water
  51.    self.is_happy = is_happy
  52.  
  53.  
  54.  
  55. В този случай, ако при създаването на обект не се предостави стойност за is_happy,
  56.    то тя автоматично ще бъде зададена на False.
  57.  
  58.  
  59. 2. Вариант с фиксирано зададена стойност:
  60.  
  61. def __init__(self, name, water_requirements):
  62.    self.name = name
  63.    self.water_requirements = int(water_requirements)
  64.    self.is_happy = False
  65.    
  66. Тук is_happy винаги ще бъде зададена на False,
  67. дори и ако при създаването на обект бъде подадена друга стойност за is_happy.
  68.  
  69.  
  70. Кой вариант да избера?
  71. Ако искате гъвкавост и да може потребителите на вашия клас да решат дали искат да предоставят стойност за is_happy
  72. при инициализацията, използвайте първия вариант с подразбираща се стойност.
  73. Това позволява на потребителите на вашия код да използват класа с различни конфигурации,
  74. включително и без задаване на is_happy.
  75.  
  76. Ако искате ясна и предвидима стойност за is_happy и не предвиждате различни сценарии без нея,
  77. може да използвате втория вариант с фиксирано зададена стойност False.
  78. Това прави вашия код по-прозрачен и предсказуем, но ще ограничи гъвкавостта при използване на класа.
  79.  
  80. Заключение
  81. И двата варианта са валидни и зависят от специфичните нужди и предпочитания на вашето приложение.
  82.  
  83. Ако вие или потребителите на вашия код биха могли да се възползват от гъвкавостта на подразбиращата се стойност
  84. за is_happy, използвайте първия вариант.
  85.  
  86. Ако предпочитате по-ясна и предвидима логика за инициализацията, изберете втория вариант.
  87.  
  88.  
  89.  
  90.  
  91.  
  92.  
  93. """
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement