👍4
Класс Number предоставляет метод для перехвата создания экземпляра (__init__), а также метод для отлавливания выражений вычитания (__sub__ ). Специальные методы подобного рода являются привязками, которые дают возможность соединяться со встроенными операциями:
class Number:
def __init__(self, start): # Для Number (start)
def __sub__(self, other) : # Для экземпляр - other
return Number(
X = Number(5) # Number.__init__(X, 5)
Y = X - 2 # Number.__sub__ (X, 2)
Метод конструктора __init__ является наиболее употребительным методом перегрузки операций в Python; он присутствует в большинстве классов и применяется для инициализации вновь созданного объекта экземпляра с использованием любых аргументов, указываемых после имени класса. Метод __sub__ исполняет роль бинарной операции аналогично методу __add__, перехватывая выражения вычитания и возвращая в
качестве своего результата новый экземпляр класса (попутно выполняя __init__).
❤3
🧩Что выведет код?
Anonymous Quiz
9%
[3, 4, 5, 6, 7, 8, 2]
6%
[3, 2, 5, 2, 7, 2]
58%
[3, 5, 7]
28%
Error
👍2
class slice(start, stop, step=None)
Возвращает объект среза, представляющий набор индексов, указанных в range(start, stop, step). Аргументы start и step по умолчанию равны None.
Python documentation
Built-in Functions
The Python interpreter has a number of functions and types built into it that are always available. They are listed here in alphabetical order.,,,, Built-in Functions,,, A, abs(), aiter(), all(), a...
🧩 Что выведет код?
Anonymous Quiz
13%
аа сс ее
78%
аа ас ае са сс се еа ес ее
5%
а + а а + с а + е с + а с + с с + е е + а е + с е + е
4%
Error
👍4👎1
С практической точки зрения любой тип данных, который может использоваться в цикле for, является итерируемым. Как формально проверить объект на итерируемость? Если объект может быть преобразован в итератор при помощи функции iter, он является итерируемым.
[В задаче выше] внешний цикл захватывает итератор из строки, вызывая iter, и каждый вложенный цикл делает то же самое, чтобы получить независимый итератор. Поскольку каждый активный итератор имеет собственную информацию о состоянии, каждый цикл может поддерживать свою позицию в строке независимо от любых других активных циклов.
👍1👎1
👍3❤1
setattr(object, name, value)
Аргументами являются объект, строка и произвольное значение. [...] Функция присваивает значение атрибуту, если объект это допускает. Например, setattr(x, 'age', 40) эквивалентно x.age = 40.
Python documentation
Built-in Functions
The Python interpreter has a number of functions and types built into it that are always available. They are listed here in alphabetical order.,,,, Built-in Functions,,, A, abs(), aiter(), all(), a...
👍1👎1
🤨1
Столбец product определяет группу, к которой принадлежит запись.
Объект GroupBy организует записи в DataFrame в группы на основе данных о продуктах A, B, C в некотором столбце. Предположим, что нас интересует доля одной СТРОКИ в общем объеме ГРУППЫ.
🤷♀2🤓1
❤1👍1
Метод nlargest возвращает максимальные значения из объекта Series. Первый его параметр, n, задает число возвращаемых записей. Аргумент по умолчанию параметра n равен 5. Библиотека pandas cортирует значения в возвращаемом объекте Series в порядке убывания:
google.nlargest(n = 5)
google.nlargest()
👍1👎1
Какие метод перегрузки операций можно использовать для поддержки итерации в классах?
Anonymous Quiz
9%
__add__, __setitem__
16%
__next__, __del__
67%
__getitem__, __iter___
10%
Никакие из вышеперечисленных
👍2👎1
Классы могут поддерживать итерацию путем определения (или наследования) метода getitem или iter. Во всех итерационных контекстах Python сначала пытается применить метод iter, возвращающий объект, который поддерживает протокол итерации с помощью метода next: если поиск в иерархии наследования не привел к нахождению метода iter, тогда Python прибегает к методу индексирования__getitem__, многократно вызывая его с последовательно увеличивающимися индексами. В случае использования оператора yield метод next может быть создан автоматически.
👍4