Python Flashcards
Классы (ООП)
механизм создания новых типов объектов
Класс
это коллекция функций (известных, как методы), переменных (известных, как переменные класса) и вычисляемых атрибутов (известных, как свойства).
Метод экземпляра (класса)
функция, оперирующая экземпляром класса, который передается ей в первом аргументе
Переменные класса
значения, которые совместно используются всеми экземплярами класса (то есть они не могут содержать отдельные значения для каждого из экземпляров)
Экземпляры класса создаются
обращением к объекту класса, как к функции. В результате этого создается новый экземпляр, который затем передается методу __init__() класса.
Аргументы метода __init__()
вновь созданный экземпляр self и дополнительные аргументы, указанные при вызове объекта класса
Внутри метода __init__()
создаются атрибуты экземпляра путем присваивания значений атрибутам объекта self
Оператор точки (.)
отвечает за доступ к атрибутам
Наследование
механизм создания новых классов, призванный на- строить или изменить поведение существующего класса
Класс- примесь
обычно определяющий набор методов, объявляется, чтобы потом «подмешивать» его в другие классы, с целью расширения их функциональных возможностей
Статический метод
это обычная функция, которая просто включается в пространство имен, определяемое классом
Методы класса
это методы, которые оперируют самим классом как объектом
Свойство
это особая разновидность атрибута, который вычисляет свое значение при попытке обращения к нему
Дескриптор
это обычный объект, представляющий значение атрибута
Слабая ссылка
это такая ссылка на объект, создание которой не приводит к увеличению счетчика ссылок
__slots__
возможность ограничить класс определенным набором имен атрибутов
Абстрактные базовые классы
реализуют механизм организации объектов в иерархии, позволяющий утверждать о наличии требуемых методов и делать другие выводы
Метакласс
это объект, который знает, как создавать классы и управлять ими
Декоратор класса
это функция, которая принимает и возвращает класс
В чем разница между модулем и пакетом в Python?
Каждый программный файл Python представляет собой модуль, который импортирует другие модули как объекты. Таким образом, модуль — это способ структурирования вашей программы. Папка с программой на Python называется пакетом модулей.
Какие встроенные типы доступны в Python?
К изменяемым относятся: Списки, Множества, Словари. Представителями неизменяемых типов являются: Строки, Кортежи, Числа.
Что такое лямбда-функция в Python?
Лямбда часто используется как встраиваемая функция и представляет собой единственное анонимное функциональное выражение. Она применяется для создания нового объекта функции и его возврата во время выполнения.
Лямбда — это анонимная функция в Python, которая может принимать неограниченное количество аргументов и может иметь любое число параметров. Однако лямбда-функция может иметь только одно выражение или инструкцию. Обычно она используется в ситуациях, когда требуется анонимная функция в течение короткого периода времени.
Что означает пространство имен?
Пространство имен представляет собой систему имен, которая используется для обеспечения уникальности наименования всех объектов в программе, чтобы избежать возможных конфликтов. В Python эти пространства имен реализованы как словари с именем в качестве ключа и объектом в качестве значения. В результате разные пространства могут давать своим объектам одинаковые имена.
Ниже приведены три типа пространств имен в Python:
Локальное пространство имен — включает локальные имена внутри функции. Локальное пространство имен временно создается во время вызова функции и очищается при возврате из нее.
Глобальное пространство имен — состоит из имен различных импортированных пакетов/модулей, которые в настоящее время используются в проекте. Глобальное пространство имен создается при импорте пакета в скрипт, и оно доступно до тех пор, пока скрипт не закончит выполнение.
Встроенное пространство имен — оно включает встроенные функции Python и встроенные имена для различных типов исключений.
Объясните разницу между списком и кортежем?
Список изменяемый, а кортеж — нет. Кортежи можно хешировать, как в случае создания ключей для словарей.
Чем отличается pickling от unpickling?
В Python модуль pickle принимает любой объект Python, преобразует его в строковое представление и выгружает его в файл с помощью функции dump. Такой процесс известен как pickling. Для этого процесса используется функция pickle.dump().
С другой стороны, процесс извлечения исходного объекта Python из сохраненного строкового представления называется unpickling. Для этого процесса используется функция pickle.load().
Что такое декораторы в Python?
Декоратор Python — это некоторое обновление синтаксиса Python, сделанное для более простого изменения функций.
Разница между генераторами и итераторами?
В Python итераторы используются для перебора группы элементов (например, в списке). Генераторы представляют собой способ реализации итераторов. В них применяется yield для возврата выражения из функции, но в остальном генератор ведет себя как обычная функция.
Как преобразовать число в строку?
Встроенная функция str().
Для восьмеричного или шестнадцатеричного представления числа - oct() или hex().
Как используется оператор // в Python?
Использование оператора // между двумя числами дает частное при делении числителя на знаменатель. Он также называется оператором деления без остатка.
Есть ли в Python инструкция Switch или Case, как в C?
Нет. Однако мы можем создать нашу собственную функцию Switch и использовать ее.
Что такое функция range() и каковы ее параметры?
Функция range() используется для создания списка из чисел. Разрешены только целые числа, поэтому переданные аргументы могут быть как отрицательными, так и положительными. Допустимы следующие параметры:
Где «stop» — это количество целых чисел для генерации, начиная с 0. Пример: list(range(5)) == [0,1,2,3,4]
Другие параметры: range([start], stop[, step]):
Start: устанавливает первое число в последовательности.
Stop: указывает предел для последовательности.
Step: шаг перемещения по последовательности.
Как используется %s?
%s — это спецификатор формата, который преобразует любое значение в строку.
Обязательно ли функция Python должна возвращать значение?
Нет, но в любом случае возвращает (None for void)
Что такое GIL?
GIL или Global Interpreter Lock — это мьютекс, используемый для ограничения доступа к объектам Python. Он синхронизирует потоки и предотвращает их одновременное выполнение.
Какой метод использовался до оператора «in» для проверки наличия ключа в словаре?
Метод has_key()
Как изменить тип данных списка?
Чтобы преобразовать список в кортеж, мы используем функцию tuple().
Чтобы превратить его в множество — функцию set().
Для преобразования в словарь — dict().
Для превращения в строку — join().
Каковы ключевые особенности Python?
Python — это язык программирования общего назначения высокого уровня с открытым исходным кодом. Поставляется с большим набором библиотек, вы можете использовать Python для разработки практически любого типа приложений.
Некоторые из его ключевых особенностей:
Интерпретированный,
С динамической типизацией,
Объектно-ориентированный,
Англоязычный синтаксис.
Объясните управление памятью в Python.
В Python диспетчер памяти заботится об управлении памятью. Он выделяет ее в виде пространства в куче, в которой хранятся все объекты Python и структуры данных. В языке существуют 4 встроенных структуры данных. Данное пространство недоступно для программиста напрямую. Однако базовый API позволяет разработчику получить доступ к некоторым инструментам для написания кода.
Кроме того, Python оснащен встроенным сборщиком мусора, который освобождает неиспользуемую память из пространства кучи.
Что такое PYTHONPATH?
PYTHONPATH — это переменная окружения, которая используется для включения дополнительных каталогов при импорте модуля/пакета. Каждый раз, когда модуль/пакет импортируется, PYTHONPATH используется для проверки наличия добавляемых модулей в существующих каталогах. Обычно интерпретатор использует PYTHONPATH, чтобы определить, какой модуль загрузить.
Чувствителен ли Python к регистру?
Язык программирования считается чувствительным к регистру, если он различает такие идентификаторы, как «myname» и «Myname». Проще говоря, он заботится, являются ли символы строчными или прописными. Возникновение ошибки NameError означает, что Python чувствителен к регистру.
Объясните использование функций help() и dir()
В Python функция help() используется для отображения документации по модулям, классам, функциям, ключевым словам и так далее. Если help() не получает параметров, она запускает интерактивную справочную утилиту на консоли.
Функция dir() возвращает допустимый список атрибутов и методов объекта, к которому она вызывается. Поскольку функция предназначена для получения наиболее релевантных данных (вместо отображения полной информации), она ведет себя по-разному с разными объектами:
Для модулей/библиотек функция dir() возвращает список всех атрибутов, содержащихся в этом модуле.
Для объектов класса dir() вернет список всех допустимых атрибутов и базовых атрибутов.
Когда ей не передаются никакие параметры, функция dir() возвращает список атрибутов в текущей области видимости.
Что такое модули Python? Назовите некоторые наиболее часто используемые встроенные модули в Python?
Модули Python — это файлы, содержащие код на Python, который представляет собой либо функциональные классы, либо переменные. Модули являются файлами Python с расширением .py. Они могут включать в себя набор функций, классов или переменных, которые определены и реализованы. Вы можете импортировать и инициализировать модуль с помощью инструкции import. Изучив руководство по Python, вы можете узнать больше о модулях в Python.
Вот некоторые из наиболее часто используемых встроенных модулей в Python:
Операционные системы
os, sys, math, random, datetime, JSON
Объясните, что означает «self» в Python.
В Python «self» — это ключевое слово, применяемое для определения экземпляра или объекта класса. В отличие от Java, где self не является обязательным, в Python он используется как первый параметр. Self помогает отличать методы и атрибуты класса от его локальных переменных.
Переменная self в методе __init__ ссылается к созданному объекту или экземпляру, тогда как в других методах она указывает на объект или экземпляр, метод которого был вызван.
Что такое Python?
Python — это язык программирования с объектами, модулями, потоками, исключениями и автоматическим управлением памятью. Python предназначен для высокой читабельности. Он часто использует английские ключевые слова, в то время как другие языки используют пунктуацию, и у него меньше синтаксических конструкций, чем у других языков.