№19 Классы и объекты Python / Уроки по Python для начинающих

Предыдущий урок: Массивы

Python — объектно-ориентированный язык программирования. Почти все в Python — это объект с его свойствами и методами. Класс похож на конструктор объекта или ‘‘проект’’ для создания объектов.

Создание класса

Для того, чтобы создать класс, используйте ключевое слово class.
Создадим класс с именем MyClass и свойством x:

class MyClass:
    x = 5

Создание объекта

Теперь мы можем использовать класс под названием myClass для создания объектов.
Создадим объект под названием p1, и выведем значение x:

p1 = MyClass()
print(p1.x)

Вывод:

5

Функция init

Приведенные выше примеры — это классы и объекты в их простейшей форме и не очень полезны в приложениях.
Чтобы понять значение классов, нам нужно понять встроенную функцию __init__.

У всех классов есть функция под названием __init__(), которая всегда выполняется при создании объекта. Используйте функцию __init__() для добавления значений свойствам объекта или других операций, которые необходимо выполнить, при создании объекта.
Для создания класса под названием Person, воспользуемся функцией __init__(), что бы добавить значения для имени и возраста:

class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age


p1 = Person("Василий",  36)    
print(p1.name)  
print(p1.age)

Вывод:

Василий
36

Обратите внимание: Функция __init__() автоматически вызывается каждый раз при использовании класса для создания нового объекта.

Методы объектов

Объекты также содержат методы. Методы в объектах — это функции, принадлежащие объекту.
Давайте создадим метод в классе Person.
Добавим функцию, которая выводит приветствие, и выполним ее:

class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age
    
    def  myfunc(self):
        print("Привет, меня зовут "  + self.name)
        
p1 = Person("Василий", 36)
p1.myfunc()

Вывод:

Привет, меня зовут Василий

Параметр self

Параметр self является ссылкой на сам класс и используется для доступа к переменным, принадлежащим классу.
Его не обязательно называть self, вы можете называть его как хотите, но он должен быть первым параметром любой функции в классе.
Используем слова mysillyobject и abc вместо self:

class Person:
    def __init__(mysillyobject, name, age):
        mysillyobject.name = name
        mysillyobject.age = age
    
    def myfunc(abc):
        print("Привет, меня зовут "  + abc.name)


p1 = Person("Василий", 36)
p1.myfunc()

Вывод:

Привет, меня зовут Василий

Изменение свойств объекта

Вы можете изменять свойства объектов следующим образом.
Изменим возраст от p1 на 40:

p1.age = 40

Больше примеров применения class в Python 3: Примеры работы с классами в Python

Удалить свойства объекта

Свойства объектов можно удалять с помощью ключевого слова del

del p1.age

Удаление объектов

Вы можете удалить объекты, используя ключевое слово del.

del p1

Далее: Итераторы Python