👍3👎1
👍3👎1
👍2👎1
1. Сначала определяется глобальная переменная x со значением "a":
x = "a"
2. Затем определяется функция outer_func(), которая объявляет x как глобальную переменную с помощью ключевого слова global:
def outer_func():
global x
3. Внутри outer_func() определяется вложенная функция nested_func(), которая просто выводит значение x:
def nested_func():
print(x)
4. После определения функций, значение глобальной переменной x изменяется на "b":
x = "b"
Благодаря объявлению global x внутри outer_func(), все обращения к x внутри этой функции (включая вложенные функции) будут ссылаться на глобальную переменную x. Когда nested_func() вызывается и пытается вывести x, она ищет значение x в следующем порядке (LEGB):
— L (Local): локальной переменной x нет;
— E (Enclosing): из-за global x в outer_func, пропускается;
— G (Global): находит x со значением "b";
— B (Built-in): не требуется.
👍2👎1
🌱 Что сделает assign()?
Anonymous Quiz
57%
Создаст новый столбец df (разность gross и cogs)
22%
Создаст столбец x (значения gross и cogs через дефис)
10%
Создаст копию датафрейма
11%
Такого метода нет
👍2👎1
🌱 Что неверно про классы и модули из нижеперечисленного?
Anonymous Quiz
30%
Классы всегда вкладываются в модули
16%
Классы и модули являются пространствами имен
33%
И классы, и модули поддерживают перегрузку операций, наследование
22%
Нет неверного варианта
👍2👎1
👍2👎1
🌱 Какие из способов создания атрибута класса являются правильными?
Anonymous Quiz
20%
1
18%
2
6%
3
56%
Все верные
🍌5👍3❤1👎1
- attr1 - это атрибут класса, доступный всем экземплярам
- attr2 - это атрибут экземпляра, уникальный для каждого объекта
- attr3 - это атрибут класса, добавленный после определения класса
👎3❤1👍1
🌱 Где можно создать атрибут экземпляра класса?
Anonymous Quiz
22%
Внутри class, присваиванием значений атрибута self
21%
Везде, где присутствует ссылка на экземпляра
30%
В 1 и 2
27%
Везде
🥴8🗿1
Однако их тоже можно создавать присваиванием везде, где присутствует ссылка на экземпляр, даже за пределами оператора class. Обычно все атрибуты экземпляра инициализируются в методе конструктора __init__ таким образом, более поздние вызовы методов могут предполагать, что атрибуты уже существуют.
👎3👍1
🌱 Что такое self в контексте методов класса?
Anonymous Quiz
15%
Имя, назначаемое самому левому аргументу в функции метода класса
12%
Обязательное имя для первого параметра в методах класса
35%
Специальный объект, который создается при определении класса
38%
Все верно
👎12🗿3👍2🤣1
❤3👍1👎1
🔍 Какой метод перерузки операций используется чаще всего?
Anonymous Quiz
13%
__add__
15%
__call__
66%
__init__
7%
__getitem__
👎7💩3
🤡2
🔍 Что верно про __init__?
Anonymous Quiz
11%
Это метод конструктора
9%
Он выполняется при создании экземпляра
7%
Может принимать параметры помимо self
73%
Все верно
👍3👎1
Какого значения параметра fill_method в Pandas не существует?
Anonymous Quiz
26%
pad
16%
ffill
14%
zfill
46%
Все существуют
👍2👎1
— forward-fill (ffill): «протащить» последнее действительное значение вперед;
— backfill (bfill): использовать следующее действительное наблюдение для заполнения пробела;
— zero-fill (zfill): заполнить пробелы нулями
— None: не обрабатывать пропуски
Важное примечание: существует отдельный метод pandas.DataFrame.pad(), он по умолчанию заливает в пустую ячейку последнее валидное значение.
👍2👎1