В различных учебниках я видел, как он утверждал, что вызов метода с использованием instance.method()
синтаксически эквивалентен Class.method(instance)
. Я также исследовать «метод связывания», что есть и официальные состояния питон документации:Разница между вызовом метода через Class.method (instance) и instance.method()
«Когда атрибут экземпляра ссылается, что не является атрибутом данных, ищется его класс Если имя означает действительное. class object , который является объектом функции, объект метода создается путем упаковки (указатели на) объекта экземпляра и только что найденного объекта функции в абстрактном объекте: это объект метода. Когда вызывается объект метода с списком аргументов, новый список аргументов - это , построенный из объекта экземпляра и списка аргументов, и функциональный объект является вызовом ed с этим новым списком аргументов. "
Исходя из этого описания, он появляется только синтаксис instance.method()
приведет к «абстрактному объекту метода» создается, потому что 'атрибут экземпляра на который ссылается. Если это так, то как два выражения синтаксически эквивалентны?
Будучи точным, они не являются синтаксически эквивалентными, так как они имеют другой синтаксис. Но они имеют тот же результат. С некоторыми шагами между ними 'instance.method()' вызывает 'class.method (instance)'. В конце концов, это просто плохое использование «синтаксиса». –