Module (86%)
Section (100%)

Упражнения

Сценарий

Предположим, что следующий фрагмент кода был успешно выполнен:

class Dog: kennel = 0 def __init__(self, breed): self.breed = breed Dog.kennel += 1 def __str__(self): return self.breed + " says: Woof!" class SheepDog(Dog): def __str__(self): return super().__str__() + " Don't run away, Little Lamb!" class GuardDog(Dog): def __str__(self): return super().__str__() + " Stay where you are, Mister Intruder!" rocky = SheepDog("Collie") luna = GuardDog("Dobermann")

Теперь ответьте на вопросы из упражнений 1–4.



Упражнение 1

Каков ожидаемый вывод следующего фрагмента кода?

print(rocky) print(luna)



Упражнение 2

Каков ожидаемый вывод следующего фрагмента кода?

print(issubclass(SheepDog, Dog), issubclass(SheepDog, GuardDog)) print(isinstance(rocky, GuardDog), isinstance(luna, GuardDog))



Упражнение 3

Каков ожидаемый результат следующего фрагмента кода?

print(luna is luna, rocky is luna) print(rocky.kennel)



Упражнение 4

Определите подкласс SheepDog с именем LowlandDog и снабдите его методом __str__(), заменяющим унаследованный метод с тем же именем. Новый метод собаки __str__() должен возвращать строку "Woof! I don't like mountains!" .