Python
Объясните, пожалуйста, максимально понятно и кратко. Сколько раз слушал объяснение, не понял
Что такое __init__ & self в python в классах?
Этот метод используется для работы с экземплярами класса. Когда ты создаешь класс, то можешь сразу указать то, что в нем будет.
class bicycle(object):
def __init__(self, name, price, color, brand):
self.name = name
self.price = price
self.color = color
self.brand = brand
Заметь, не для всего класса, а именно для его экземпляров. class bicycle(object):
color="black"
def __init__(self, name, price, brand,color):
self.name = name
self.price = price
self.brand = brand
self.color = color
lada=bicycle("lada","1000","lada","white")
print(lada.color)
Вот тут происходит переопределение свойства класса color. В итоге выведет white a не black.
Влад Миронов
А вот пример класса без использования этого метода.
self - имя первого параметра метода. Первым параметром в метод всегда передаётся объект, для которого этот метод вызван. И имя этого параметра может быть любым. А self только потому, что так принято.
Во многих языках для передачи объекта используется неявный (не указываемый в заголовке) параметр с именем this - без вариантов. В Go имя параметра-объекта может быть любым, но оно в заголовке синтаксически отделено от прочих параметров - не перепутаешь. А в Python объект просто сделали первым параметром и предложили всегда называть self - чтобы не путаться.
Когда ты создаёшь объект, сначала создаётся пустой объект, а потом автоматически вызывается метод __init__, который производит создание и инициализацию полей объекта. Первым параметром в __init__ передаётся свежесозданный объект, а дальше идут все те значения, которые ты задал в операции создании объекта.
Метод __init__ внутри себя может содержать любой код, выполняющий любые действия, но принято ограничиваться инициализацией.
P.S. В действительности чуть сложнее: между созданием пустого объекта и вызовом __init__ есть ещё вызов __new__. Но это отдельная тема.
Во многих языках для передачи объекта используется неявный (не указываемый в заголовке) параметр с именем this - без вариантов. В Go имя параметра-объекта может быть любым, но оно в заголовке синтаксически отделено от прочих параметров - не перепутаешь. А в Python объект просто сделали первым параметром и предложили всегда называть self - чтобы не путаться.
Когда ты создаёшь объект, сначала создаётся пустой объект, а потом автоматически вызывается метод __init__, который производит создание и инициализацию полей объекта. Первым параметром в __init__ передаётся свежесозданный объект, а дальше идут все те значения, которые ты задал в операции создании объекта.
Метод __init__ внутри себя может содержать любой код, выполняющий любые действия, но принято ограничиваться инициализацией.
P.S. В действительности чуть сложнее: между созданием пустого объекта и вызовом __init__ есть ещё вызов __new__. Но это отдельная тема.
__init__ это конструктор, а self это ссылка на текущий экземпляр класса,то есть this
Инит этот типо конструктора, а селф — ссылка на его экземпляр, как this в жс. Только там его не надо передавать а тут странно это придумано. Ещё раз, через селф, ты можешь обращаться к созданному объекту из класса, это применяется для всех объектов, ты можешь сконфигурировать свойства еще до их создания
__init__, __str__ и прочее подобное - дантер-методы, встроенные функции, которые можно переопределять. Например если переопределить __str__, то стандартная функция print будет вести себя так как ее указали в переопределении.
self - ссылка на контекст вызова. Все эти дела важны для ООП, в обычном процедурном коде их нет и можно не заморачиваться
self - ссылка на контекст вызова. Все эти дела важны для ООП, в обычном процедурном коде их нет и можно не заморачиваться
Размер твоего члена
Алексей Кротов
Иди в садик из пластилина поделки лепить
поперечно-полоосатый минет
Похожие вопросы
- Объясните пожалуйста решение этого выражения, если можно максимально подробно описать каждый шаг. Решение через Python
- Объясните пожалуйста задачу в Python!
- Объясните пожалуйста как работает программа
- Объясните пожалуйста понятней что такое фреймворк?
- Добрый день, объясните, пожалуйста, код на python
- Информатика. Объясните пожалуйста что, почему, за чем. Отвечает каждая строка и каждая команда. Пайтон
- Как возвести число в степень в python через цикл while? В чем моя ошибка в коде? Объясните, пожалуйста подробнее
- Здравствуйте, объясните, пожалуйста данный код на python
- Объясните код python пожалуйста
- Что делает нижнее подчёркивание в цикле for. Нужно подробное объяснение.