Так что же делает метод __init__, когда мы инициируем класс.

Примечание. __init__ — это слово init, которому предшествуют и за которым следуют два знака подчеркивания.

__init__ — это метод инициализации в Python, иногда его называют конструктором.

Этот конструктор вызывается каждый раз, когда мы инициализируем новый экземпляр Point. Это позволяет программисту настроить класс так, чтобы он принимал любые необходимые атрибуты.

Параметр self предназначен для ссылки на вновь созданные атрибуты.

Предостережение

Параметр self не обязательно называть self.

При работе с языком программирования Python существует сильная культура стандартизации имен и соглашений о форматировании.

Если вы не читали PEP 8 — Руководство по стилю для кода Python и вас интересуют классы, знайте, что автор этой статьи настоятельно рекомендует это сделать.

К чему вся эта суета с именами и тому подобным?

Потому что, если вы собираетесь создавать более крупные программы, планируете сотрудничество с другими людьми и наслаждаетесь психическим состоянием здравомыслия, это настоятельно рекомендуется.

Если вы больше заинтересованы в том, чтобы нарушать правила и быть нетрадиционным, то знайте, что существует высокая вероятность того, что ваше будущее «я», вероятно, захочет поговорить с вашим нетрадиционным «я» в какой-то момент.

Давайте использовать наш класс

<__main__.Point object at 0x7f1980318970>

Python вернул некоторую информацию.

Python сообщает нам, что теперь есть точечный объект, и дает нам местоположение этого объекта в памяти.

Поскольку наш класс в настоящее время написан, он может создать только точку (0,0) на декартовой плоскости.

Не очень полезно.

Добавим немного функциональности.

<__main__.Point object at 0x7f1981ba00a0>

Отлично, теперь мы можем определить более одной точки.

Однако мы мало что можем сделать с этой точкой.

Давайте добавим в наш класс некоторые функции, они также называются методами класса.

7
6
9.219544457292887

Обозначение через точку

Важно помнить, что когда мы создаем классы и нам нужно вызвать метод, нам нужно использовать запись через точку.

Мы видим использование записи через точку, когда разделяем строку.

"split a string".split()
['split', 'a', 'string']

Как насчет функции

Теперь, когда у нас есть класс Point, мы можем создать функцию для работы с ним.

Ниже мы добавили функцию distance для работы с нашим классом Point.

5.0

Как насчет метода?

Что если вместо функции вне класса мы поместим эту функцию внутри класса?

Мы могли бы создать новый метод для нашего класса, ниже мы видим предыдущий класс Point с distance теперь в качестве метода.

Мы перепишем наш класс, вложив функцию distance в определение класса и превратив ее в метод класса.

Это изменит то, как мы вызываем distance в python.

В качестве функции мы назвали:

distance(p,q)

Теперь в качестве метода мы будем вызывать:

p.distance(q)

Возвращается запись через точку.

13.0

Очистка вывода.

В своем базовом состоянии класс вернет тот факт, что он является объектом класса, и его расположение в памяти при печати.

print(p)
<__main__.Point object at 0x7f19802eb430>

Если мы хотим, чтобы этот оператор печати давал программисту больше полезной информации, нам нужно определить эту функцию печати внутри класса.

Мы делаем это, вызывая метод __str__.

Мы добавили эту функциональность ниже.

This is a point class where x = 3, y = 4

В итоге

Вместе мы узнали, как определить класс, создать методы класса и заставить экземпляры нашего класса выводить полезную информацию.

Это много.

Поздравляю с тем, что вы продолжили свое путешествие по Python достаточно долго, чтобы заинтересоваться классами.

Следите за новостями, чтобы не пропустить другие статьи о классах Python среди других тем.

Не можешь дождаться, а?

Я тоже.

Вот статья об экземплярах и классах.



Лучший способ поддержать меня — это -› ☕ Купи мне кофе. ☕

Вы также можете поддержать меня, подписавшись на Medium.

Не стесняйтесь обращаться к LinkedIn, Twitter или Facebook.