Упражнения
Сценарий
Предположим, что следующий фрагмент кода был успешно выполнен:
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!" .