Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Зачем нужен self в python?

Анар Дадашов Ученик (133), на голосовании 5 лет назад
Миллион сайтов, лекций, даже стихов прочитал. Если можете объяснить на пальцах зачем нужен self, то буду благодарен.

Я понял так: есть код:
class Foo:
_#начало f1
_x = 3
_#конец f1
_def __init__ ():
__print(self.x)

Что-бы обратится к переменным, которые в коде между f1 (я пометил) нужно использовать self, потому что идёт путанится с зоной видиньем переменных.
Голосование за лучший ответ
Senior Backend Developer Оракул (81073) 5 лет назад
Для того, чтобы понимать зачем нужен self, нужно получше разобраться с классами в python, self - это всего лишь ссылка на текущий объект (instance класса), без него ты не сможешь обратиться к текущего инстансу (от которого идет вызов метода)
Анар ДадашовУченик (133) 5 лет назад
Проще говоря, это то, что я сказал в вопросе?
Анар Дадашов Ученик (133) Ладно, и так понял. Я почему @staticmethod(ам) не нужен self?
Григорий Мыслитель (6031) 5 лет назад
Если знаком с java, то там это this.
Для того, чтобы внутри методов класса обращаться именно к нужному нам объекту.
Например, у нас есть класс person, внутри которого есть метод grow_up. Чтобы нам прибавить возраст именно тому экземпляру класса person, у которого вызываем метод grow_up нам и нужен self.
Проще прочитать про классы.
Анар ДадашовУченик (133) 5 лет назад
Стоп, а тогда смысл вот этогр кода:
class A:
_def b (self, int)
_self.int = int

Что происходит, когда к экземпляру класса мы вызываем метод b?
Григорий Мыслитель (6031) self.int = int здесь мы просто упрощаем себе вызов метода этого класса, т. е. вместо a = A() a.b(self.int = 1), мы пишем a = A() a.b(int = 1) А вот смысла у этого кода нет.
Алексей Хвостовский Мудрец (18173) 5 лет назад
Читать нужно в общем о парадигме объектно-ориентированного программирования. Прям с начала. А не по верхушкам и из середины: что такое self и т. п.
Похожие вопросы