Как я знаю, когда поставить аргумент после себя? - PullRequest
0 голосов
/ 28 марта 2019

Давайте рассмотрим, что вы создаете игру NFS.для этого у нас должна быть машина.Автомобиль может иметь такие атрибуты, как «цвет», «компания», «speed_limit» и т. Д., А также такие методы, как «change_gear», «start», «ускорение», «перемещение» и т. Д. enter image description here

Так в этом примере, почему они поместили аргумент после self для последней функции (gear_type после self в функции change_gear), но не для других?

Ответы [ 2 ]

1 голос
/ 28 марта 2019

Думайте об объекте как о состоянии контейнера.Единственный способ изменить его внутреннее состояние - вызвать метод.запускать, останавливать и ускорять изменение состояния на основе предыдущего состояния, они зависят от того, что больше не должно работать, поскольку все, что им нужно, уже содержится или выводится из состояния автомобиля.Теперь, если вы хотите сменить передачу, вы хотите изменить ее на что-то другое, на какую-то другую передачу, поэтому ваш метод должен получить недостающие части.

Думайте о методе как о сообщениях, потому что он очто это ООП, отправка сообщений объектам.Если вы говорите автомобилю, чтобы начать, остановить или ускорить сообщение завершено само по себе.Теперь, если вы говорите, измените свое снаряжение, вы должны предоставить новое снаряжение с сообщением, чтобы сообщение имело смысл, и оно может изменить свое снаряжение на то, которое вы предоставили.

В Python первым аргументом метода является сам объект.Это государственный контейнер.Это заменяется объектом интерпретатором, когда вы вызываете object.method(arg), становится object.method(object, arg).Вы можете назвать его так, как хотите, но self - это установленное соглашение

Надеюсь, это поможет

1 голос
/ 28 марта 2019

Проще говоря, вы включаете аргумент после self, когда вашему методу требуется дополнительная информация для выполнения и эта информация находится вне объекта, иначе вы сможете получить к нему доступ через self.attribute

...