Методы
Часть раздела Object Oriented Programming путешествия по Python на Coddy — урок 5 из 64.
Методы — это функции, которые принадлежат классу. Они определяют поведение или действия, которые могут выполнять объекты.
Вот пример класса с методами:
class Calculator:
def greet(self):
print("Hello! I'm a calculator.")
def add(self, a, b):
return a + b
def multiply(self, x, y):
result = x * y
print(f"{x} × {y} = {result}")
return resultСоздайте объект калькулятора:
my_calc = Calculator()Вызовите метод, которому не нужны параметры:
my_calc.greet()Вызывайте методы с параметрами:
sum_result = my_calc.add(5, 3)
print(sum_result)Вызовите метод, который одновременно выводит на печать и возвращает значение:
product = my_calc.multiply(4, 7)Вывод:
Hello! I'm a calculator.
8
4 × 7 = 28Методы могут:
- Принимать параметры, такие как
add(self, a, b) - Возвращать значения, такие как
return a + b - Выводить результат напрямую, например
print("Hello!") - Выполнять как вывод, так и возврат значения
Ключевой момент: Методы определяют, что могут делать ваши объекты. Всегда включайте self в качестве первого параметра, но не передавайте его при вызове метода.
Задание
ЛегкоВ этом испытании вы реализуете банковскую систему. Вы создадите класс BankAccount в одном файле и будете использовать его в другом, демонстрируя, как организовать код для лучшей поддержки.
Вам нужно работать с двумя файлами:
- bank_account.py: Где вы определите свой класс
BankAccount - driver.py: Где вы импортируете класс, создадите аккаунт и выполните транзакции
Создайте класс BankAccount в bank_account.py с:
- Атрибутом класса
bank_name, установленным в "Python National Bank" - Методом
deposit, который принимает сумму и добавляет ее к балансу аккаунта - Методом
withdraw, который принимает сумму и вычитает ее из баланса - Методом
get_balance, который возвращает текущий баланс
Затем в driver.py импортируйте ваш класс BankAccount, создайте аккаунт, внесите $100, снимите $30 и выведите баланс в формате: f"Current balance: ${my_account.get_balance()}"
Шпаргалка
Методы — это функции, которые принадлежат классу и определяют, что могут делать объекты.
Определение методов в классе:
class Calculator:
def greet(self):
print("Hello! I'm a calculator.")
def add(self, a, b):
return a + b
def multiply(self, x, y):
result = x * y
print(f"{x} × {y} = {result}")
return resultСоздание объекта и вызов методов:
my_calc = Calculator()
my_calc.greet()
sum_result = my_calc.add(5, 3)
product = my_calc.multiply(4, 7)Методы могут:
- Принимать параметры:
add(self, a, b) - Возвращать значения:
return a + b - Выводить данные:
print("Hello!") - Делать и то, и другое (вывод и возврат значения)
Ключевой момент: Всегда указывайте self в качестве первого параметра при определении метода, но не передавайте его при вызове метода.
Попробуйте сами
from bank_account import BankAccount
# Создайте аккаунт и протестируйте свои методы
my_account = BankAccount()
my_account.balance = 0 # Начальный баланс
# TODO: Совершите транзакции
# (Ваш код здесь)
# TODO: Выведите итоговый баланс
# (Ваш код здесь)В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Object Oriented Programming
1Основы ООП
Внешние файлыВведение в ООПКлассы и объектыПараметр selfМетодыАтрибутыМетод-конструктор (__init__)Повторение — Простой калькулятор4Наследование
Базовое наследованиеФункция super()Переопределение методовМножественное наследованиеПорядок разрешения методовИтоги — Иерархия сотрудников7Специальные методы
Введение в магические методыПерегрузка операторовМагические методы контейнеровПовторение — Пользовательский список10Паттерны проектирования. Часть 1
Введение в паттерны проектированияПаттерн SingletonПаттерн FactoryПаттерн ObserverПаттерн Strategy5Полиморфизм
Снова о переопределении методовУтиная типизацияАбстрактные классы и методыПроектирование интерфейсовИтоги — Калькулятор фигур8Продвинутые концепции ООП
Композиция против наследованияМиксиныСтатические методы и методы классаДекораторы классовМенеджеры контекста11Паттерны проектирования. Часть 2
Паттерн КомандаПаттерн АдаптерПаттерн ДекораторПаттерн Шаблонный методПаттерн СостояниеПаттерн Компоновщик3Свойства классов
Переменные экземпляра и классаДекораторы свойствПриватные атрибутыИтоги — Менеджер банковского счета6Инкапсуляция
Public, Protected, Private члены классаМодификаторы доступаСокрытие данныхДекораторы property: продвинутый уровеньИтоги: Система учета студентов12Проект: Управление библиотекой
Обзор проектаКлассы Book и User