Advertisement
Guest User

Untitled

a guest
Aug 23rd, 2019
122
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.80 KB | None | 0 0
  1. class Animal:
  2. def __init__(self, name: str, age: int):
  3. self.name = name
  4. self.age = age
  5.  
  6.  
  7. class Dog(Animal):
  8. def __init__(self, name, age, number_of_legs: int):
  9. Animal.__init__(self, name, age)
  10. self.number_of_legs = number_of_legs
  11.  
  12. def make_sound(self):
  13. return "I'm a Distinguishedog, and I will..."
  14.  
  15. def __str__(self):
  16. return f'Dog {self.name}, {self.age},{self.number_of_legs}'
  17.  
  18. class Cat(Animal):
  19. def __init__(self, name, age, intel_q):
  20. Animal.__init__(self, name, age)
  21. self.intel_q = intel_q
  22.  
  23. def make_sound(self):
  24. return "I'm an Aristocrat cat.."
  25.  
  26. def __str__(self):
  27. return f'Cat {self.name}, {self.age},{self.intel_q}'
  28.  
  29. class Snake(Animal):
  30. def __init__(self, name, age, cruelty):
  31. Animal.__init__(self, name, age)
  32. self.cruelty = cruelty
  33.  
  34. def make_sound(self):
  35. return "I'm a Snake..."
  36.  
  37. def __str__(self):
  38. return f'Snake {self.name}, Age: {self.age}, Cruetly: {self.cruelty}'
  39.  
  40. data_list = input().split()
  41. animals_list = []
  42.  
  43. #while not "".join(data_list) == "I'm your Huckleberry": # това е по-вярното
  44.  
  45. while not data_list[0] == "I'm":
  46. if data_list[0] == 'talk':
  47. name = data_list[1]
  48. current_animal = list(filter(lambda animal: animal.name == name, animals_list))[0] # това цялото е същото като next(filter(lambda a: a.name == name, animals_list)) взима първото
  49. #друг вариант - дава ти първото пак next(filter(lambda animal: animal.name == name, animals_list))
  50. print(current_animal.make_sound())
  51. else:
  52. kind = data_list[0]
  53. name = data_list[1]
  54. age = data_list[2]
  55. item = data_list[3]
  56. if kind == "Dog":
  57. dog = Dog(name, age,item)
  58. animals_list.append(dog)
  59. elif kind == 'Cat':
  60. cat = Cat(name, age, item)
  61. animals_list.append(cat)
  62. elif kind == 'Snake':
  63. snake = Snake(name, age, item)
  64. animals_list.append(snake)
  65.  
  66. data_list = input().split()
  67.  
  68.  
  69. dogs_list = list(filter(lambda x: isinstance(x, Dog), animals_list)) # ti kuche li si, ako da vlizai v lista na kuchetata
  70. cats_list = list(filter(lambda x: isinstance(x, Cat), animals_list))
  71. snakes_list = list(filter(lambda x: isinstance(x, Snake), animals_list))
  72. sorted_animals = dogs_list + cats_list + snakes_list
  73.  
  74. for animal in sorted_animals: # да науча dog, cat и snake как се принтира - __str__ метод трябва в класовете, стрингова репрезентация на обекта, вместо да връща object at място в паметта, може да връща snake, dog
  75. print(animal)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement