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-разработки до профессионального уровня на серьезном проекте под руководством наставника.

Подробнее ×

  • 1 views
  • 0 Comment

Leave a Reply

Ваш адрес email не будет опубликован.

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

Свежие комментарии

    Рубрики

    About Author 01.

    blank
    Roman Spiridonov

    Моя специальность - Back-end Developer, Software Engineer Python. Мне 39 лет, я работаю в области информационных технологий более 5 лет. Опыт программирования на Python более 3 лет. На Django более 2 лет.

    Categories 05.

    © Speccy 2022 / All rights reserved

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