Share This
Связаться со мной
Крути в низ
Categories
//Классы в Python

Классы в Python

02.02.2022Category : Python

А давайте поговорим о классах в Python!

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

Классы подобны чертежам объектов, описывающим возможное поведение и состояния, которые может иметь каждый объект определенного типа. Например, если вы говорите, что «у каждого клиента будет номер телефона и адрес электронной почты, и он сможет размещать и отменять заказы», ​​вы только что определили класс! Таким образом, вы можете говорить о клиентах в целом. Тогда конкретный объект Customer является просто реализацией этого класса с определенным значением состояния.

klassy v python 2f55d1e - Классы в Python

Поиск классов Python

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

Вы можете вызвать функцию type() для любого объекта Python, чтобы узнать его класс. Например, класс массива numpy на самом деле называется ndarray (для n-мерного массива). Это показано в коде ниже:

import numpy as np a = np.array([1,2,3,4]) print(type(a)) # numpy.ndarray

Классы включают информацию о состоянии объекта и его поведении. Информация о состоянии объекта в Python содержится в атрибутах, а информация о его поведении — в методах.

klassy v python f84f24b - Классы в Python

Лаборатория Django-разработки

За 3 месяца отработай навыки Django-разработки до профессионального уровня на серьезном проекте под руководством наставника.

Подробнее ×

Атрибуты и методы

Давайте возьмем массив numpy. Мы уже использовали некоторые его методы и атрибуты!

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

Состояние <—> Атрибуты

Выглядеть это будет следующим образом:

import numpy as np a = np.array([1,2,3,4]) # shape attribute a.shape # (4,)

У массива numpy также есть такие методы, как max и reshape, которые точно также доступны через точку.

Поведение <—> Методы

Использование метода для класса массивов numpy будет выглядеть, к примеру, так:

import numpy as np a = np.array([1,2,3,4]) # reshape method a.reshape(2,2) # array([[1, 2], #        [3, 4]])

Создание вашего первого класса

Время написать свой первый класс! В этом упражнении мы создадим пустой класс Employee. Затем создадим объект emp класса Employee, вызвав наш класс Employee(). Выглядеть это будет следующим образом:

# Create an empty class Employee class Employee:     pass # Create an object emp of class Employee emp = Employee()

Отлично! А теперь попробуйте распечатать атрибут .name объекта emp в консоли. Что получается?

emp.name  # Traceback (most recent call last): #   File "main.py", line 6, in <module> #     emp.name # AttributeError: 'Employee' object has no attribute 'name'

Код выдаст вам ошибку, потому что атрибут .name не существует. И это действительно так, ведь мы не задали такой атрибут для нашего класса Employee.

Давайте дополним наш код следующим образом:

class Employee:          def __init__(self, name):         self.name = name # Create an object emp of class Employee emp = Employee('John')  print(emp.name)

А теперь давайте снова попробуем вывести атрибут .name:

John

Вуаля! Всё работает. Мы получили имя нашего работника John. Ведь в этот раз мы сами задали атрибут name для нашего класса Employee.

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

class Employee:          def __init__(self, name):         self.name = name              def set_name(self, new_name):         self.name = new_name    emp = Employee('John') emp.set_name('Korel Rossi') print(emp.name)

Давайте запустим наш код и увидим, что теперь значение атрибута .name изменилось на следующее:

Korel Rossi

Заключение

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

Надеемся, данная статья была вам полезна! Успехов в написании кода!

Перевод статьи «Python Classes».

klassy v python 92f3719 - Классы в Python

Лаборатория Django-разработки

За 3 месяца отработай навыки Django-разработки до профессионального уровня на серьезном проекте под руководством наставника.

Подробнее ×

  • 7 views
  • 0 Comment

Leave a Reply

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.

Связаться со мной
Close