Объекты и методы
Это первая часть продвинутого курса программирования. Материал рассчитан на работу в редакторе 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
Объекты и методы
К данным, хранящимся в объекте, можно обращаться через методы. Метод — это функция, которая работает с конкретным объектом, к которому она привязана. Методы отличаются от других функций способом вызова: сначала пишется имя целевого объекта, затем точка, затем имя метода и аргументы, если они есть. Например, метод 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]
Текущие баллы можно посмотреть в синем индикаторе в правом нижнем углу страницы.