Так принято именовать ссылку на текущий объект. Но это просто соглашение.
Имя первого аргумента
class A: def method(self): a = A() a.method() Вот аргументом для method будет a
да, Имя для аргумента, представляющего текущий объект класса. self — это стандартное имя первого аргумента для методов объекта.
т,е. если назову не self, то все сломается?
да, всё отвалится и 'до связи'
Причина, по которой вам нужно использовать self. потому что Python не использует синтаксис @ для ссылки на атрибуты экземпляра. Python решил создавать методы таким образом, чтобы экземпляр, которому принадлежит метод, передавался автоматически, но не получался автоматически: первый параметр методов - это экземпляр, для которого метод вызывается. Это делает методы полностью такими же, как функции, и оставляет фактическое имя для использования на ваше усмотрение (хотя self - это соглашение, и люди, как правило, будут матерится, когда вы используете что-то еще.) другой объект. Python мог бы сделать что-то еще, чтобы отличать нормальные имена от атрибутов - специальный синтаксис, такой как у Ruby, или требующий деклараций, как это делают C ++ и Java, или, возможно, что-то еще иное, - но этого не произошло. Python - все для того, чтобы сделать вещи явными, чтобы было очевидно, что к чему, и хотя он не делает это полностью везде, он делает это, например, с атрибутами. Вот почему при назначении атрибута экземпляра необходимо знать, какой экземпляр назначать, и поэтому для него требуется self ..
Актуально)
Что такое "синтаксис @ для ссылки на атрибуты"?
И что там неявное с атрибутами?
Это если с классами? А можно ли без них?)
Обсуждают сегодня