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

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

@ProgHelpBot
  1. Классы и объекты
  2. Методы класса
  3. self
  4. Конструкторы
  5. Атрибуты объекта

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

Класс представляет некоторую сущность. Конкретным воплощением класса является объект. Класс определяется с помощью ключевого слова class. Имя класса принято писать с большой буквы.

class [Название класса]:
  [атрибуты класса]
  [методы класса]

[объект класса] = [Название класса]()

Внутри класса определяются его атрибуты, которые хранят различные характеристики класса, и методы - функции класса.

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

class Person:
  pass

alex = Person()
bill = Person()

В данном случае в классе не определяется никаких методов или атрибутов. Однако поскольку в нем должно быть что-то определено, то в качестве заменителя функционала класса применяется оператор pass.

Методы класса

Методы класса фактически представляют функции, которые определенны внутри класса и которые определяют его поведение.

class [Класс]:
  def [метод](self):
    [инструкции]

[объект] = [Класс]()
[объект].[метод]()

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

class Person:
  def say(self, message):
    print(f"Hello. {message}")

alex = Person()
alex.say("How are you?")  # Hello. How are you?

self

Через ключевое слово self можно обращаться внутри класса к функциональности текущего объекта.

self.[атрибут]
self.[метод]

Пример:

class Person:
  def say(self, message):
    print(message)

  def say_hello(self):
    self.say("Hello")

alex = Person()
alex.say_hello()  # Hello

Конструкторы

Для создания объекта класса используется конструктор. Каждый класс по умолчанию имеет конструктор без параметров.

class Person:
  pass

alex = Person()  # конструктор без параметров

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

class Person:
  def __init__(self):
    print("Создание объекта")


alex = Person()  # Создание объекта

Атрибуты объекта

Атрибуты хранят состояние объекта. Для определения, установки и взаимодействия с атрибутами внутри класса применяется слово self.

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

  def print_info(self):
    print(f"Name: {self.name}, age: {self.age}")


alex = Person("Alex")
print(alex.name)  # Alex
alex.age = 18
alex.print_info()  # Name: Alex, age: 18

Атрибуты объекта можно определять динамически и вне кода описания класса.

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


alex = Person("Alex")
alex.company = "Google"
print(alex.company)  # Google


← Декораторы

→ Инкапсуляция, атрибуты и свойства

Report Page