ru
Feedback
Python: задачки и вопросы

Python: задачки и вопросы

Открыть в Telegram

Вопросы и задачки для подготовки к собеседованиям и прокачки навыков Разместить рекламу: @tproger_sales_bot Правила общения: https://tprg.ru/rules Другие каналы: @tproger_channels Другие наши проекты: https://tprg.ru/media

Больше
6 955
Подписчики
-224 часа
-67 дней
-5930 день
Архив постов
🔍 Что верно про __init__?
Anonymous voting

Наиболее часто используется метод конструктора __init__ класс применяет этот метод для установки начальных значений атрибутов экземпляра и выполнения других задач начального запуска.

🔍 Какой метод перерузки операций используется чаще всего?
Anonymous voting

self — это имя, обычно назначаемое первому (крайнему слева) аргументу в функции метода класса, который представляет собой подразумеваемый объект вызова метода. Данный аргумент НЕ обязан называться self.

🌱 Что такое self в контексте методов класса?
Anonymous voting

Атрибуты экземпляра создаются посредством присваивания значений атрибутам объекта экземпляра. Они обычно создаются в функциях методов класса, реализованных внутри оператора class, с помощью присваивания значений атрибутам аргумента self (который всегда является подразумеваемым экземпляром). Однако их тоже можно создавать присваиванием везде, где присутствует ссылка на экземпляр, даже за пределами оператора class. Обычно все атрибуты экземпляра инициализируются в методе конструктора __init__ таким образом, более поздние вызовы методов могут предполагать, что атрибуты уже существуют.

🌱 Где можно создать атрибут экземпляра класса?
Anonymous voting

Объяснение: Все три способа являются корректными, но создают разные типы атрибутов: - attr1 - это атрибут класса, доступный всем экземплярам - attr2 - это атрибут экземпляра, уникальный для каждого объекта - attr3 - это атрибут класса, добавленный после определения класса

🌱 Какие из способов создания атрибута класса являются правильными?
Anonymous voting

Классы всегда вкладываются внутрь модуля. Классы и модули являются пространствами имен, но классы соответствуют операторам (не целым файлам) и поддерживают такие понятия ООП, как множество экземпляров, наследование и перегрузку операций (все перечисленное модули не поддерживают). До известной степени модуль подобен классу с единственным экземпляром без наследования, который соответствует полному файлу кода.

🌱 Что неверно про классы и модули из нижеперечисленного?
Anonymous voting

🌱 Что сделает assign()?
Anonymous voting

photo content

Код выведет "b" из-за принципа работы областей видимости LEGB и использования ключевого слова global: 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): не требуется.

🔍 Что выведет код?
Anonymous voting

photo content

Списки являются изменяемыми объектами, и при присваивании b = a создается ссылка на тот же список, а не его копия. Поэтому при изменении списка b через метод append(), изменения также отражаются в списке a, так как они указывают на один и тот же объект в памяти.

🌱 Что выведет код?
Anonymous voting

photo content