Код: Выделить всё
class Duck:
def quack(self):
print("quack")
class Dog:
def bark(self):
print("I just bark")
case:1
Код: Выделить всё
class ItQuacks:
def __init__(self, animal):
**animal.quack()**
ItQuacks(Duck) — ничего не печатается. Я ожидаю, что будет напечатано слово "шарлатан".
тогда как ItQuacks(Duck()) — это печать "шарлатана".
case:2
Код: Выделить всё
class ItQuacks:
def __init__(self, animal):
**animal.quack(self)**
ItQuacks(Duck) — печатает «шарлатанство», как и ожидалось
Могу ли я знать, что «Duck()» по умолчанию имеет self. Может кто-нибудь объяснить эту концепцию.
Подробнее здесь: https://stackoverflow.com/questions/788 ... ass-method