Зарегистрируйтесь, чтобы продолжить обучение

Объекты Основы Python

Upper

До этого момента мы работали только с функциями: они получают данные, что-то делают с ними и возвращают результат. Но в Python есть ещё один похожий механизм — методы.

Метод — это та же функция, только «привязанная» к конкретному значению определённого типа данных. То есть вместе с самим значением мы получаем набор функций, которые умеют с ним работать.

Методы строк

Например, у строк есть свои методы для преобразования текста. Метод upper() переводит все буквы в верхний регистр:

text = 'hexlet'
print(text.upper())  # => HEXLET

В отличие от функций, у методов сначала пишется значение (строка text), затем через точку имя метода (upper), и уже потом скобки.

Встроенных методов у строк довольно много. Ниже некоторые из них:

# Перевод первой буквы в верхний регистр
'hexlet'.capitalize()  # => Hexlet

# Перевод всех букв в нижний регистр
print('HeXleT'.lower())  # => hexlet

# Удаление пробелов в начале и конце строки
print('   hi   '.strip())  # => hi

Некоторые методы принимают параметры. Например, у метода replace() первый параметр — это подстрока, которую нужно заменить, а второй — строка-замена.

text = 'abracadabra'

print(text.replace('a', 'o'))   # => obrocodobro
print(text.replace('abra', '!'))  # => !cad!

Методов в Python действительно много, и их не учат наизусть. Обычно программисты в процессе работы запоминают, какие операции им вообще нужны и как примерно называются такие методы. А когда возникает задача — они либо вспоминают подходящий метод, либо быстро находят его в документации.

Метод и функция — в чём разница

С точки зрения кода, методы и функции ведут себя похоже: они принимают значения и возвращают результат. Разница в том, как они вызываются:

# Вызов функции
len('hexlet')

# Вызов метода
'hexlet'.upper()

Функция вызывается снаружи и получает аргумент в скобках. Метод — это как будто операция, встроенная в само значение. Под капотом значение передается внутрь как нулевой параметр, но это скрыто от нас.

Методы возвращают значения

Методы работают точно так же, как функции: они возвращают результат, а не выводят его на экран. Это значит, что их можно использовать в составе выражений:

print('hexlet'.upper())          # => HEXLET
print('hi'.replace('i', 'ello')) # => hello

Методы строк не изменяют саму строку, а возвращают новую. Это поведение называется иммутабельностью. Мы ещё поговорим об этом позже, но пока важно понимать, что строка остаётся прежней, а результат метода — это новое значение.

Зачем нужны методы в Python

В Python часть возможностей реализована именно как методы. Это позволяет сгруппировать операции рядом с типами данных, к которым они относятся. У строк есть один набор методов, у чисел другой, у списков третий. Таким образом, в языке сосуществуют два способа работы: функции общего назначения и методы, "прикреплённые" к конкретным типам.

Открыть доступ

Курсы программирования для новичков и опытных разработчиков. Начните обучение бесплатно

  • 130 курсов, 2000+ часов теории
  • 1000 практических заданий в браузере
  • 360 000 студентов
Отправляя форму, вы принимаете «Соглашение об обработке персональных данных» и условия «Оферты», а также соглашаетесь с «Условиями использования»

Наши выпускники работают в компаниях:

Логотип компании Альфа Банк
Логотип компании Aviasales
Логотип компании Yandex
Логотип компании Tinkoff