Атрибуты и методы являются основными составляющими классов в 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