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

Классы и объекты

Проще говоря, класс - это модель того, что вы хотите воссоздать в коде. Думайте об этом как о создании общей концепции всего, что вы пытаетесь воплотить в жизнь (в цифровом виде). Например, если вы хотите создать автомобиль, вам нужно определить, какие части должны быть в нем, чтобы работать так, как вы предполагаете.

Класс - это общая концепция этого автомобиля: абстрактная идея, в которой есть колеса, окна, двери, двигатель и так далее. Более того, объект может быть конкретной версией или экземпляром класса. Например, черная машина с 4 колесами, 6 окнами, 4 дверями, двигателем и т. Д. И т. Д.

Для наглядности посмотрите на изображение ниже. Автомобиль вверху представляет класс, а каждый из автомобилей внизу представляет объекты, основанные на классе автомобиля. Все объекты имеют одинаковую общую структуру, но различаются своими индивидуальными атрибутами.

Общая структура

В приведенном ниже коде объектmyCar по своей сути имеет все атрибуты, которые должен иметь любой автомобиль, созданный на основе класса Car. В Python простой класс будет выглядеть примерно так: (ПРИМЕЧАНИЕ: числа - это номера строк, они НЕ являются частью кода)

1 class Car:
2    # Initializer
3    def __init__(self, color):
4        self.color = color
5
6 myCar = Car("Black")

Давайте разберемся:

  • Строка 1: запускает создание класса.
  • Строка 2: # относится к началу комментария. Все в этой строке будет проигнорировано компилятором.
  • Строка 3: это подпись функции__init__, которая служит конструктором. Он инициализирует класс Car.
  • Строка 4: присваивает значения, переданные в качестве аргументов, атрибутам класса.
  • Строка 6: содержит переменную myCar, в которой будет храниться объект с атрибутом цвета «Черный».

В приведенном выше коде для инициализации Car требуется только аргумент цвета. Однако, если вам потребуется более одного атрибута для создания автомобиля, их можно добавить как часть функции __init__. См. ниже:

1 class Car:
2  # Initializer
3    def __init__(self, color, make):
4        self.color = color
5        self.make = make
6 
7 myCar = Car("Black", "Toyota")

По сравнению с предыдущим блоком кода класс Car теперь имеет два атрибута: color и make. Теперь каждый объект, основанный на классе Car, должен быть создан с обоими атрибутами, а не только с цветом.

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

Кроме того, автомобиль не функционирует, если он не может включаться, двигаться вперед, назад и поворачивать влево или вправо. В терминах программирования эта «способность» класса и связанные с ним объекты называются функциями. Это то, что дает объекту жизнь и позволяет ему «делать» вещи. Позвольте мне проиллюстрировать это на примере:

1  class Car:
2     # Initializer
3     def __init__(self, color):
4         self.color = color
5
6     # function
7     def moveForward(self):
8         print ("The car moved forward")
9 
10  myCar = Car("Black")
11  myCar.moveForward()

Мы можем дать myCar «возможность» двигаться вперед с помощью функции moveForward, определенной после функции __init__ и вызывающей ее с помощью myCar.moveForward().

Атрибуты класса

Несмотря на то, что большинство атрибутов можно определить при создании объекта, некоторые другие заранее определены и установлены самим классом. Например, каждая машина должна иметь двигатель, чтобы нормально работать. Чтобы гарантировать, что у каждого объекта есть движок, вы указываете его в самом классе. В строке2 мы устанавливаем, что каждый объект из этого класса будет иметь ровно 1 движок.

1  class Car:
2     numberOfEngines = 1
3    
4     # Initializer
5     def __init__(self, color):
6         self.color = color
7
8     # function
9     def moveForward(self):
10         print ("The car moved forward")
11 
12  myCar = Car("Black")
13  myCar.moveForward()

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