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

13 ответов

5 просмотров

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

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

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. п...

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

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

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

А чем вам питонисты не угодили?😂
.
79
Язык Си можно выучить за день? По книжке ANSI C на 230 страниц
Vincent Vegan
29
Всем привет, написал код ниже, но он выдает сегфолт, в чем причина? #include <stdio.h> #include <stdlib.h> #include <string.h> struct product { char *name; float price; };...
buzz базз
75
Есть какой-нибудь для Delphi/FPC T*Compression(Decompression)Stream на базе LZ4/Zstd/любой другой быстрый(и хорошо сжимающий) алгоритм А ещё лучше в pure pascal А ещё лучше од...
notme
8
Dim Dim, [02.07.2024 11:07] DB 0x62 Dim Dim, [02.07.2024 11:07] DB 0x66 Dim Dim, [02.07.2024 11:07] кто пояснит что это?
Dim Dim
14
Ошибка: segmentation fault (core dumped) Код: pastebin.com/BEsNNSSV Сообщение от компилятора: отсутствует ОС: Arch Linux Ядро: x86_64 Linux 6.9.7-arch1-1 Процессор: Intel Cele...
sec
4
Ещё такой вопрос. Мне необходимо хранить пароль пользователя локально. Для этого планирую использовать ini файл. Это для автозаполнения полей логин и пароль при авторизации. Е...
Евгений
19
Ребят, а за скок можно впарить анон чат с апишкой и веб админкой ?
Eugene Неелов
15
Кстати, я тут еще с одной темой столкнулся, вот учу я C++, на таком то ресурсе, а остальные постоянно советуют практиковаться, что то писать, проекты, но как писать если вот т...
aaswq1
7
А как лучше конвертировать физический адрес в виртуальный при маппинге? В случае ядра у меня, например, direct mapping, первые 768МБ я как есть мапплю в higher half, а остальн...
Evg Resh
26
Карта сайта