Когда мы вызываем метод, как объект python узнает, из какого класса извлечь метод?

Рассмотрим следующий код:

bb = BeachBallKlass(99)       # Line A
color = bb.get_color('longitude',  33.5, 'lattitude', 22.8) # Line B

Как Python определяет, где взять get_color метод из?

Перед get_color метод вызывается в строке B, он извлекается из некоторого класса. Получение get_color от bb можно сделать, позвонив __getattribute__ Тем не менее, каждый класс, в том числе BeachBallKlass может иметь свое __getattribute__ метод. Когда вы звоните bb.__getattribute__Python знает, как использовать __getattribute__ метод от BeachBallKlass. Python не использует __getattribute__ чтобы узнать, какой класс bb создается из, потому что вызов __getattribute__ потребует уже зная класс. Python должен иметь какой-то другой механизм, чтобы знать, какой класс bb создается экземпляр, который не получает эту информацию из bb позвонив __getattribute__, Что это за механизм?

0 ответов

Другие вопросы по тегам