Part 8

Объекты и методы

Это первая часть продвинутого курса программирования. Материал рассчитан на работу в редакторе Visual Studio Code, как и предыдущий курс «Введение в программирование». Если вы раньше не пользовались Visual Studio Code, инструкции по установке вы найдете здесь, а введение в среду программирования из предыдущего курса — здесь.

В курсе «Введение в программирование» мы заметили, что в программах часто имеет смысл группировать связанные данные. Например, если мы хотим хранить информацию о книге, может быть разумно использовать кортеж или словарь, чтобы организовать данные в одну структуру данных.

При использовании кортежа решение могло бы выглядеть так:

name = "In Search of Lost Typing"
author = "Marcel Pythons"
year = 1992

# Combine these in a tuple
book = (name, author, year)

# Print the name of the book
print(book[0])

В таком случае преимущество словаря в том, что вместо индексов мы можем использовать строки в качестве ключей. То есть мы можем давать понятные имена элементам, хранящимся в структуре данных:

name = "In Search of Lost Typing"
author = "Marcel Pythons"
year = 1992

# Combine these in a dictionary
book = {"name": name, "author": author, "year": year}

# Print the name of the book
print(book["name"])

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

Если создать два структурно одинаковых представления книг, используя словари с одинаковыми ключами, изменения в одном из них никак не повлияют на другой:

book1 = {"name": "The Old Man and the Pythons", "author": "Ernest Pythons", "year": 1952}
book2 = {"name": "Seven Pythons", "author": "Aleksis Python", "year": 1894}

print(book1["name"])
print(book2["name"])

book1["name"] = "A Farewell to ARM Processors"

print(book1["name"])
print(book2["name"])
Пример вывода

The Old Man and the Pythons Seven Pythons A Farewell to ARM Processors Seven Pythons

8 1 1

Объекты и методы

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

# this creates an object of type dictionary with the name book
book = {"name": "The Old Man and the Pythons", "author": "Ernest Pythons", "year": 1952}

# Print out all the values
# The method call values() is written after the name of the variable
# Remember the dot notation!
for value in book.values():
    print(value)
Пример вывода

The Old Man and the Pythons Ernest Pythons 1952

Аналогично, методы строк работают со строковым объектом, для которого они вызваны. Среди примеров строковых методов — count и find:

name = "Imaginary Irene"

# Print out the number of times the letter I is found
print(name.count("I"))

# The number of letters I found in another string
print("Irreverent Irises in Islington".count("I"))

# The index of the substring Irene
print(name.find("Irene"))

# This string has no such substring
print("A completely different string".find("Irene"))
Пример вывода

2 3 10 -1

Методы строк возвращают значения, но не изменяют содержимое строки. Как было сказано выше, строки в Python неизменяемы. Однако это относится не ко всем методам. Списки Python изменяемы, поэтому методы списков Python могут изменять содержимое списка, для которого они вызваны:

my_list = [1,2,3]

# Add a couple of items
my_list.append(5)
my_list.append(1)

print(my_list)

# Remove the first item
my_list.pop(0)

print(my_list)
Пример вывода

[1, 2, 3, 5, 1] [2, 3, 5, 1]

Loading
Loading
Вы дошли до конца этого раздела! Перейти к следующему разделу:

Текущие баллы можно посмотреть в синем индикаторе в правом нижнем углу страницы.