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

Онлайн-тренажер Python 3 для начинающих

Теория без воды. Задачи с автоматической проверкой. Подсказки на русском языке. Работает в любом современном браузере.

начать бесплатно

Самоучитель Python 3, собранный из материалов данного сайта. Предназначен в основном для тех, кто хочет изучить язык программирования Python с нуля.

Атрибуты и методы являются основными составляющими классов в Python. Атрибуты представляют собой данные, привязанные к объекту, а методы - это функции, которые выполняют действия над объектами.
 
Атрибуты
Атрибуты - это переменные, которые принадлежат объекту. Атрибуты класса определяются в методе __init__() или вне его. Можно обращаться к атрибутам с использованием точечной нотации (object.attribute).
 
Объявление атрибутов
Атрибуты обычно объявляются и инициализируются в методе __init__(), который является конструктором класса. Конструктор автоматически вызывается при создании нового объекта класса.
class Circle:
    def __init__(self, radius):
        self.radius = radius  # Атрибут "radius" инициализируется при создании объекта

my_circle = Circle(5)  # Создание объекта с радиусом 5
print(my_circle.radius)  # Вывод: 5
В этом примере атрибут radius инициализируется значением 5 при создании объекта my_circle.
 
Доступ к атрибутам
Доступ к атрибутам объекта осуществляется с использованием точечной нотации (object.attribute).
class Circle:
    def __init__(self, radius):
        self.radius = radius

my_circle = Circle(5)
print(my_circle.radius)  # Вывод: 5
 
Методы
Методы - это функции, определенные внутри класса. Они предоставляют интерфейс для выполнения действий над объектом и могут использовать атрибуты объекта.
 
Объявление методов
Методы объявляются внутри класса с использованием ключевого слова def. Обычно первым параметром метода является self, который ссылается на текущий экземпляр объекта.
class Circle:
    def __init__(self, radius):
        self.radius = radius

    def area(self):
        return 3.14 * self.radius ** 2  # Метод для вычисления площади круга

my_circle = Circle(5)
print(my_circle.area())  # Вывод: 78.5
В этом примере метод area() вычисляет площадь круга на основе атрибута radius.
 
Вызов методов
Методы вызываются на объекте с использованием точечной нотации (object.method()).
class Circle:
    def __init__(self, radius):
        self.radius = radius

    def area(self):
        return 3.14 * self.radius ** 2

my_circle = Circle(5)
print(my_circle.area())  # Вывод: 78.5
 
Полный пример
class Circle:
    def __init__(self, radius):
        self.radius = radius  # Инициализация атрибута radius

    def area(self):
        return 3.14 * self.radius ** 2  # Метод для вычисления площади круга

    def circumference(self):
        return 2 * 3.14 * self.radius  # Метод для вычисления длины окружности

# Создание объекта и вызов методов
my_circle = Circle(5)
print(my_circle.area())  # Вывод: 78.5
print(my_circle.circumference())  # Вывод: 31.400000000000002

# Доступ к атрибуту объекта
print(my_circle.radius)  # Вывод: 5
Класс Circle имеет атрибут radius, который инициализируется при создании объекта.
Метод area() вычисляет и возвращает площадь круга.
Метод circumference() вычисляет и возвращает длину окружности.
 
Дополнительные примеры
 
Класс Rectangle с атрибутами width и height
class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age

    def say_hello(self):
        print(f"Hello, my name is {self.name} and I am {self.age} years old.")

    def birthday(self):
        self.age += 1  # Увеличение возраста на 1

# Создание объекта и вызов методов
person1 = Person("Alice", 30)
person1.say_hello()  # Вывод: Hello, my name is Alice and I am 30 years old.

# Вызов метода birthday
person1.birthday()
person1.say_hello()  # Вывод: Hello, my name is Alice and I am 31 years old.

# Доступ к атрибутам объекта
print(person1.name)  # Вывод: Alice
print(person1.age)  # Вывод: 31

категории

ТЕОРИЯ

  • Введение в Python
  • Основы программирования на Python
  • Управляющие конструкции
  • Структуры данных
  • Функции и модули
  • Обработка исключений
  • Работа с файлами и потоками
  • файловая система
  • Объектно-ориентированное программирование (ООП)
  • Регулярные выражения
  • Дополнительные темы

Мы в соцсетях