ramsess90

objects_and_classes_zad_06_animals

Feb 9th, 2019
169
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.89 KB | None | 0 0
  1. class Animal:
  2.     def __init__(self):
  3.         self.__name = ''
  4.         self.__age = 0
  5.         self.__sound = ''
  6.         self.__parameters = ''
  7.  
  8.     def set_name(self, name: str):
  9.         self.__name = name
  10.  
  11.     def set_age(self, age: int):
  12.         self.__age = age
  13.  
  14.     def set_sound(self, sound: str):
  15.         self.__sound = sound
  16.  
  17.     def set_parameters(self, parameters: int):
  18.         self.__parameters = parameters
  19.  
  20.     def get_name(self):
  21.         return self.__name
  22.  
  23.     def get_age(self):
  24.         return self.__age
  25.  
  26.     def get_parameters(self):
  27.         return self.__parameters
  28.  
  29.     def get_sound(self):
  30.         return self.__sound
  31.  
  32.  
  33. class Dog(Animal):
  34.     parameter = 1
  35.  
  36.     def __str__(self):
  37.         return f"Dog: {self.get_name()}, Age: {self.get_age()}, Number Of Legs: {self.get_parameters()}"
  38.  
  39.     def set_from_string(self, data):
  40.         animal_name, animal_age, animal_parameter = data
  41.         self.set_age(animal_age)
  42.         self.set_name(animal_name)
  43.         self.set_parameters(animal_parameter)
  44.         self.set_sound("I'm a Distinguishedog, and I will now produce a distinguished sound! Bau Bau.")
  45.  
  46.  
  47. class Cat(Animal):
  48.     parameter = 2
  49.  
  50.     def __str__(self):
  51.         return f"Cat: {self.get_name()}, Age: {self.get_age()}, IQ: {self.get_parameters()}"
  52.  
  53.     def set_from_string(self, data):
  54.         animal_name, animal_age, animal_parameter = data
  55.         self.set_age(animal_age)
  56.         self.set_name(animal_name)
  57.         self.set_parameters(animal_parameter)
  58.         self.set_sound("I'm an Aristocat, and I will now produce an aristocratic sound! Myau Myau.")
  59.  
  60.  
  61. class Snake(Animal):
  62.     parameter = 3
  63.  
  64.     def __str__(self):
  65.         return f"Snake: {self.get_name()}, Age: {self.get_age()}, Cruelty: {self.get_parameters()}"
  66.  
  67.     def set_from_string(self, data):
  68.         animal_name, animal_age, animal_parameter = data
  69.         self.set_age(animal_age)
  70.         self.set_name(animal_name)
  71.         self.set_parameters(animal_parameter)
  72.         self.set_sound("I'm a Sophistisnake, and I will now produce a sophisticated sound! Honey, I'm home.")
  73.  
  74.  
  75. data = input()
  76. animals = []
  77. # Read all animals
  78. while not data == "I'm your Huckleberry":
  79.     data = data.split()
  80.     if data[0] == 'Dog':
  81.         animal = Dog()
  82.         animal.set_from_string(data[1:])
  83.         animals.append(animal)
  84.     elif data[0] == 'Cat':
  85.         animal = Cat()
  86.         animal.set_from_string(data[1:])
  87.         animals.append(animal)
  88.     elif data[0] == 'Snake':
  89.         animal = Snake()
  90.         animal.set_from_string(data[1:])
  91.         animals.append(animal)
  92.     elif data[0] == 'talk':
  93.         # print only sound of the animal with same name
  94.         print(list(filter(lambda k: k.get_name() == data[1], animals))[0].get_sound())
  95.     data = input()
  96. # print all animals list comprehension sorting by parameter
  97. [print(i) for i in sorted(animals, key=lambda k: k.parameter)]
Advertisement
Add Comment
Please, Sign In to add comment