Когда использовать 'self' в Python?

Нужно ли использовать self при ссылке на функцию-член в Python (в пределах одного модуля)?

В более общем смысле, мне интересно, когда требуется использовать self, не только для методов, но и для переменных.

29
задан agf 11 October 2011 в 06:55
поделиться

1 ответ

Добавление ответа, потому что Оскарби не является явным.

Вы используете self, когда:

  1. Определение метода экземпляра. Он передается автоматически в качестве первого параметра при вызове метода для экземпляра, и это тот экземпляр, для которого был вызван метод.
  2. Ссылка на класс или атрибут экземпляра внутри метода экземпляра. Используйте его, чтобы вызвать метод или получить доступ к имени (переменной) в экземпляре, к которому был вызван метод, из этого метода.

Вы не используете self, когда

  1. Вы вызываете метод экземпляра как обычно. Используя пример Оскарби, если вы делаете instance = MyClass(), вы называете MyClass.my_method как instance.my_method(some_var), а не instance.my_method(self, some_var).
  2. Вы ссылаетесь на атрибут класса из вне метода экземпляра, но внутри определения класса.
  3. Вы находитесь внутри статического метода .

Эти не просто примеры того, когда не использовать себя. Дос - это когда вы должны использовать его.

31
ответ дан 28 November 2019 в 01:31
поделиться
Другие вопросы по тегам:

Похожие вопросы: