Методы класса
Метод — это функция, которая принадлежит классу. Методы описывают, что могут делать объекты этого класса.
Примечание: каждый метод принимает self первым параметром.
Пример
Класс с методом:
Вывод: полная программа на Python
class Person:
def __init__(self, name):
self.name = name
def greet(self):
print("Привет, меня зовут " + self.name)
p1 = Person("Emil")
p1.greet()
Методы с параметрами
Как и обычным функциям, методам можно передавать параметры:
Пример
Класс, методы которого принимают параметры:
Вывод: полная программа на Python
class Calculator:
def add(self, a, b):
return a + b
def multiply(self, a, b):
return a * b
calc = Calculator()
print(calc.add(5, 3))
print(calc.multiply(4, 7))
Методы, которые обращаются к свойствам
Через self метод может читать и изменять свойства своего объекта:
Пример
Этот метод читает свойства объекта:
Вывод: полная программа на Python
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
def get_info(self):
return f"Имя: {self.name}, возраст: {self.age}"
p1 = Person("Tobias", 28)
print(p1.get_info())
Методы, которые изменяют свойства
Метод также может свободно изменять свойства объекта:
Пример
Этот метод обновляет значение свойства:
Вывод: полная программа на Python
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
def celebrate_birthday(self):
self.age += 1
print(f"С днём рождения! Теперь ваш возраст: {self.age}")
p1 = Person("Linus", 25)
p1.celebrate_birthday()
p1.celebrate_birthday()
Метод __str__()
Специальный метод __str__() определяет, что вы увидите при выводе объекта:
Пример
Вывод объекта, у которого нет __str__():
Вывод: полная программа на Python
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
p1 = Person("Emil", 36)
print(p1)
Пример
Вывод объекта, в котором определён __str__():
Вывод: полная программа на Python
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
def __str__(self):
return f"{self.name} ({self.age})"
p1 = Person("Tobias", 36)
print(p1)
Несколько методов
Несколько методов одного класса могут работать вместе:
Пример
Класс с несколькими взаимодействующими методами:
Вывод: полная программа на Python
class Playlist:
def __init__(self, name):
self.name = name
self.songs = []
def add_song(self, song):
self.songs.append(song)
print(f"Добавлено: {song}")
def remove_song(self, song):
if song in self.songs:
self.songs.remove(song)
print(f"Удалено: {song}")
def show_songs(self):
print(f"Плейлист '{self.name}':")
for song in self.songs:
print(f"- {song}")
my_playlist = Playlist("Favorites")
my_playlist.add_song("Bohemian Rhapsody")
my_playlist.add_song("Stairway to Heaven")
my_playlist.show_songs()
Удаление методов
Ключевое слово del также может удалить метод из класса:
Пример
Удалите метод, а затем попробуйте его вызвать:
Вывод: полная программа на Python
class Person:
def __init__(self, name):
self.name = name
def greet(self):
print("Привет!")
p1 = Person("Emil")
del Person.greet
p1.greet() # Это вызовет ошибку