Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class Animal:
- def __init__(self, name: str, age: int):
- self.name = name
- self.age = age
- class Dog(Animal):
- def __init__(self, name, age, number_of_legs: int):
- Animal.__init__(self, name, age)
- self.number_of_legs = number_of_legs
- def make_sound(self):
- return "I'm a Distinguishedog, and I will..."
- def __str__(self):
- return f'Dog {self.name}, {self.age},{self.number_of_legs}'
- class Cat(Animal):
- def __init__(self, name, age, intel_q):
- Animal.__init__(self, name, age)
- self.intel_q = intel_q
- def make_sound(self):
- return "I'm an Aristocrat cat.."
- def __str__(self):
- return f'Cat {self.name}, {self.age},{self.intel_q}'
- class Snake(Animal):
- def __init__(self, name, age, cruelty):
- Animal.__init__(self, name, age)
- self.cruelty = cruelty
- def make_sound(self):
- return "I'm a Snake..."
- def __str__(self):
- return f'Snake {self.name}, Age: {self.age}, Cruetly: {self.cruelty}'
- data_list = input().split()
- animals_list = []
- #while not "".join(data_list) == "I'm your Huckleberry": # това е по-вярното
- while not data_list[0] == "I'm":
- if data_list[0] == 'talk':
- name = data_list[1]
- current_animal = list(filter(lambda animal: animal.name == name, animals_list))[0] # това цялото е същото като next(filter(lambda a: a.name == name, animals_list)) взима първото
- #друг вариант - дава ти първото пак next(filter(lambda animal: animal.name == name, animals_list))
- print(current_animal.make_sound())
- else:
- kind = data_list[0]
- name = data_list[1]
- age = data_list[2]
- item = data_list[3]
- if kind == "Dog":
- dog = Dog(name, age,item)
- animals_list.append(dog)
- elif kind == 'Cat':
- cat = Cat(name, age, item)
- animals_list.append(cat)
- elif kind == 'Snake':
- snake = Snake(name, age, item)
- animals_list.append(snake)
- data_list = input().split()
- dogs_list = list(filter(lambda x: isinstance(x, Dog), animals_list)) # ti kuche li si, ako da vlizai v lista na kuchetata
- cats_list = list(filter(lambda x: isinstance(x, Cat), animals_list))
- snakes_list = list(filter(lambda x: isinstance(x, Snake), animals_list))
- sorted_animals = dogs_list + cats_list + snakes_list
- for animal in sorted_animals: # да науча dog, cat и snake как се принтира - __str__ метод трябва в класовете, стрингова репрезентация на обекта, вместо да връща object at място в паметта, може да връща snake, dog
- print(animal)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement