ГЛАВА 7. СТРОКОВЫЕ МЕТОДЫ В PYTHON

Вызовем функцию type и передадим ей на вход целочисленный аргумент:

Функция сообщила нам, что объект 0 относится к классу ‘int’, т.е. тип данных является классом (тип данных и класс – синонимы). Мы еще не рассматривали ООП, поэтому класс будем представлять, как некий аналог модуля, т.е. набор функций и переменных, содержащихся внутри класса. Функции, которые находятся внутри класса, называются методами. Их главное отличие от вызова функций из модуля заключается в том, что в качестве первого аргумента метод принимает, например, строковый объект, если это метод строкового класса.

Рассмотрим пример вызова строкового метода:

По аналогии с вызовом функции из модуля указываем имя класса – str, затем через точку пишем имя строкового метода capitalize, который принимает один строковый аргумент:

Метод – это обычная функция, расположенная внутри класса. Вызовем еще один метод:

Этот метод принимает два аргумента – строку и число:

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

В примере мы вынесли первый аргумент метода и поместили еговместо имени класса:

В момент, когда мы используем сокращенную форму для вызова метода, Python преобразует ее в полную форму, а затем вызывает. Это знание нам пригодится, когда дойдем до изучения ООП.

Для вызова справки у методов необходимо через точку указывать их класс:

Вынесенный из метода первый строковый аргумент может быть выражением, возвращающим строку:

Не сложно догадаться, что делает метод count. Python содержит интересный метод format:

Вместо {0} и {1} подставятся аргументы метода format.
Поменяем их местами:

Формат вывода метода format может варьироваться:

В Python есть полезные строковые методы, которые возвращают (True) истину или (False) ложь:

Метод startswith проверяет, начинается ли строка с символа, переданного в качестве аргумента методу.

При работе с текстами полезно использовать строковый метод strip:

В примере Python вернул строку, очищенную от символа переноса строки (\n) и пробелов.

Метод swapcase возвращает строку с противоположными регистрами символов:

Python позволяет творить чудеса с вызовами методов – их можно вызывать подряд в одну строку:

В первую очередь вызывается метод swapcase для строки ‘ПРИВЕТ’, затем для результирующей строки вызывается метод endswith с аргументом ‘т’:

Рассмотрим перечень популярных строковых методов. Рекомендую каждый из перечисленных ниже методов запустить в интерактивном режиме на примере различных строк. Предположим, что переменная s содержит некоторую строку, тогда применим к ней методы28:

s.upper() – возвращает строку в верхнем регистре
s.lower() – возвращает строку в нижнем регистре
s.title() – возвращает строку, первый символ которой в верхнем регистре
s.find(‘вет’, 2, 3) – возвращает позицию подстроки в интервале либо -1
s.count(‘e’, 1, 5) – возвращает количество подстрок в интервале либо -1
s.isalpha() – проверяет, состоит ли строка только из букв
s.isdigit() – проверяет, состоит ли строка только из чисел
s.isupper() – проверяет, написаны ли все символы в верхнем регистре
s.islower() – проверяет, написаны ли все символы в нижнем регистре
s.istitle() – проверяет, начинается ли строка с большой буквы
s.isspace() – проверяет, состоит ли строка только из пробелов

Для справки. Специальные строковые методы

Объединим две строки:

На самом деле, в этот момент Python вызывает специальный строковый метод add и передает ему в качестве первого аргумента строку ‘rr’:

Напомню, что этот вызов затем преобразуется Python в полную форму (результат будет аналогичный):

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


Что происходи момент, когда мы используем сокращенную форму для вызова метода?

Как называются Функции, которые находятся внутри класса?