Метод вызывается на объекте
Строки Python — объекты с собственными операциями. В text.upper() слева стоит объект, после точки — имя метода, скобки выполняют вызов. Метод использует строку, на которой вызван, даже если дополнительных аргументов нет.
Для сравнения len(text) — вызов функции с объектом в аргументе. Это два способа организации операций; функцию len можно применять не только к строкам.
Задание источника
Пользовательский текст содержит буквы разного регистра. Приведите его к нижнему регистру и выведите:
text = "the QUICK brown FOX jumps OVER the lazy DOG"
lower_text = text.lower()
print(lower_text)
Ответ — the quick brown fox jumps over the lazy dog. Исходная переменная text по-прежнему содержит прежний вариант, поскольку преобразование строки не меняет её на месте.
Методы с аргументами
print("abracadabra".replace("a", "o")) # obrocodobro
print(" hi ".strip()) # hi
Первый вызов получает искомую подстроку и замену. Второй без аргументов убирает краевые пробельные символы. Семантика параметров определяется конкретным методом, а не общим наличием круглых скобок.
Что возвращается
В исходном объяснении говорится, что методы строк всегда возвращают новую строку. Это слишком общее утверждение: count() возвращает целое, startswith() — логическое значение, split() — список. Именно методы преобразования вроде lower возвращают строковый результат без изменения исходного значения.
Не следует переносить свойства строк на все объекты: у изменяемых коллекций могут быть методы, меняющие их содержимое. Этот урок ограничен начальным использованием строковых методов, а не полной моделью объектно-ориентированного программирования.
Hexlet / Code Basics и участники · Исходный урок и решение · GNU AGPL v3. Упражнение сохранено; типы результатов методов уточнены.