170 похожих чатов

13 ответов

15 просмотров

Так принято именовать ссылку на текущий объект. Но это просто соглашение.

Имя первого аргумента

class A: def method(self): a = A() a.method() Вот аргументом для method будет a

Весенний Ветер
Имя первого аргумента

да, Имя для аргумента, представляющего текущий объект класса. self — это стандартное имя первого аргумента для методов объекта.

т,е. если назову не self, то все сломается?

Андрей
т,е. если назову не self, то все сломается?

Причина, по которой вам нужно использовать self. потому что Python не использует синтаксис @ для ссылки на атрибуты экземпляра. Python решил создавать методы таким образом, чтобы экземпляр, которому принадлежит метод, передавался автоматически, но не получался автоматически: первый параметр методов - это экземпляр, для которого метод вызывается. Это делает методы полностью такими же, как функции, и оставляет фактическое имя для использования на ваше усмотрение (хотя self - это соглашение, и люди, как правило, будут матерится, когда вы используете что-то еще.) другой объект. Python мог бы сделать что-то еще, чтобы отличать нормальные имена от атрибутов - специальный синтаксис, такой как у Ruby, или требующий деклараций, как это делают C ++ и Java, или, возможно, что-то еще иное, - но этого не произошло. Python - все для того, чтобы сделать вещи явными, чтобы было очевидно, что к чему, и хотя он не делает это полностью везде, он делает это, например, с атрибутами. Вот почему при назначении атрибута экземпляра необходимо знать, какой экземпляр назначать, и поэтому для него требуется self ..

SteadyHost Support
Причина, по которой вам нужно использовать self. п...

Что такое "синтаксис @ для ссылки на атрибуты"?

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

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта