#собесы #python #senior
Вопросы, которые могут задать на собеседовании Senior Python Developer.
Проверьте себя без помощи поисковиков!
❓ Что такое дескрипторы (descriptors) в Python?
Пример кода:
❗️ Дескрипторы — это объекты, которые определяют поведение доступа к атрибутам других объектов. Они реализуют методы get, set и delete. Примеры дескрипторов — свойства (property), статические методы ( @staticmethod ) и методы класса ( @classmethod ). Дескрипторы используются для управления доступом к атрибутам и их изменения.
Ссылка на документацию по дескрипторам
Вопросы, которые могут задать на собеседовании Senior Python Developer.
Проверьте себя без помощи поисковиков!
Пример кода:
class Descriptor:
def __get__(self, instance, owner):
return instance._value
def __set__(self, instance, value):
instance._value = value
class MyClass:
attr = Descriptor()
obj = MyClass()
obj.attr = 10
print(obj.attr) # Вывод: 10
Ссылка на
Please open Telegram to view this post
VIEW IN TELEGRAM
#собесы #python #senior
Вопросы, которые могут задать на собеседовании Senior Python Developer.
Проверьте себя без помощи поисковиков!
❓ Как работает механизм наследования в Python?
Пример кода:
❗️ Python поддерживает множественное наследование. При поиске метода или атрибута интерпретатор использует алгоритм C3 linearization (MRO — Method Resolution Order), который определяет порядок обхода классов. Порядок можно посмотреть с помощью атрибута __mro__. Если метод не найден в текущем классе, Python ищет его в родительских классах в порядке, определённом MRO.
Ссылка на документацию по наследованию
Вопросы, которые могут задать на собеседовании Senior Python Developer.
Проверьте себя без помощи поисковиков!
Пример кода:
class A:
def greet(self):
print("Привет от A")
class B(A):
def greet(self):
print("Привет от B")
class C(A):
def greet(self):
print("Привет от C")
class D(B, C):
pass
d = D()
d.greet() # Вывод: Привет от B
print(D.__mro__) # Вывод: (<class '__main__.D'>, <class '__main__.B'>, <class '__main__.C'>, <class '__main__.A'>, <class 'object'>)
Ссылка на
Please open Telegram to view this post
VIEW IN TELEGRAM
#собесы #python #senior
Вопросы, которые могут задать на собеседовании Senior Python Developer.
Проверьте себя без помощи поисковиков!
❓ Что такое метаклассы (metaclasses) и зачем они нужны?
Пример кода:
❗️ Метаклассы — это классы, которые создают другие классы. По умолчанию все классы в Python создаются с помощью метакласса type. Метаклассы позволяют изменять поведение создания классов, например, добавлять методы или атрибуты, проверять соблюдение определённых правил. Пример использования — создание ORM или автоматическая регистрация классов.
Ссылка на документацию по метаклассам
Вопросы, которые могут задать на собеседовании Senior Python Developer.
Проверьте себя без помощи поисковиков!
Пример кода:
class Meta(type):
def __new__(cls, name, bases, dct):
dct['custom_attr'] = 42
return super().__new__(cls, name, bases, dct)
class MyClass(metaclass=Meta):
pass
print(MyClass.custom_attr) # Вывод: 42
Ссылка на
Please open Telegram to view this post
VIEW IN TELEGRAM
#собесы #python #senior
Вопросы, которые могут задать на собеседовании Senior Python Developer.
Проверьте себя без помощи поисковиков!
❓ Как работает контекстный менеджер (context manager)?
Пример кода:
❗️ Контекстный менеджер — это объект, который определяет методы __enter__ и __exit__. Он используется с оператором with для управления ресурсами (например, файлами или сетевыми соединениями). Метод __enter__ выполняется при входе в блок with, а __exit__ — при выходе, даже если произошло исключение. Пример: with open('file.txt', 'r') as f: ....
Ссылка на документацию по контекстным менеджерам
Вопросы, которые могут задать на собеседовании Senior Python Developer.
Проверьте себя без помощи поисковиков!
Пример кода:
class MyContextManager:
def __enter__(self):
print("Вход в контекст")
return self
def __exit__(self, exc_type, exc_val, exc_tb):
print("Выход из контекста")
with MyContextManager() as cm:
print("Внутри контекста")
Ссылка на
Please open Telegram to view this post
VIEW IN TELEGRAM
#собесы #python #senior
Вопросы, которые могут задать на собеседовании Senior Python Developer.
Проверьте себя без помощи поисковиков!
❓ Что такое асинхронное программирование и как оно реализовано в Python?
Пример кода:
❗️ Асинхронное программирование позволяет выполнять задачи без блокировки основного потока. В Python для этого используются ключевые слова async и await, а также библиотека asyncio. Асинхронные функции выполняются в цикле событий (event loop), который управляет выполнением задач. Это полезно для I/O-зависимых операций, таких как сетевые запросы.
Ссылка на документацию по asyncio
Вопросы, которые могут задать на собеседовании Senior Python Developer.
Проверьте себя без помощи поисковиков!
Пример кода:
import asyncio
async def fetch_data():
print("Начало загрузки данных")
await asyncio.sleep(2)
print("Данные загружены")
async def main():
await asyncio.gather(fetch_data(), fetch_data())
asyncio.run(main())
Ссылка на
Please open Telegram to view this post
VIEW IN TELEGRAM
#собесы #python #senior
Вопросы, которые могут задать на собеседовании Senior Python Developer.
Проверьте себя без помощи поисковиков!
❓ Как работает механизм импорта модулей в Python?
Пример кода:
❗️ При импорте модуля Python ищет его в директориях, указанных в sys.path. Если модуль не найден, возникает ошибка ModuleNotFoundError. Модуль загружается только один раз, и его код выполняется при первом импорте. Для управления импортом можно использовать importlib или динамически изменять sys.path.
Ссылка на документацию по импорту
Вопросы, которые могут задать на собеседовании Senior Python Developer.
Проверьте себя без помощи поисковиков!
Пример кода:
import sys
sys.path.append('/path/to/module')
import my_module
Ссылка на
Please open Telegram to view this post
VIEW IN TELEGRAM
#собесы #python #senior
Вопросы, которые могут задать на собеседовании Senior Python Developer.
Проверьте себя без помощи поисковиков!
❓Что такое декораторы и как они работают?
Пример кода:
❗️ Декораторы — это функции, которые принимают другую функцию и возвращают новую функцию с изменённым поведением. Они используются для добавления функциональности (например, логирования, кэширования) без изменения исходного кода. Пример: @decorator def func(): .... Декораторы могут быть вложенными и принимать аргументы.
Ссылка на документацию по декораторам
Вопросы, которые могут задать на собеседовании Senior Python Developer.
Проверьте себя без помощи поисковиков!
❓Что такое декораторы и как они работают?
Пример кода:
def my_decorator(func):
def wrapper():
print("До вызова функции")
func()
print("После вызова функции")
return wrapper
@my_decorator
def say_hello():
print("Привет!")
say_hello()
Ссылка на
Please open Telegram to view this post
VIEW IN TELEGRAM
#собесы #python #senior
Вопросы, которые могут задать на собеседовании Senior Python Developer.
Проверьте себя без помощи поисковиков!
❓Как работает сериализация и десериализация объектов в Python?
Пример кода:
❗️ Сериализация — это процесс преобразования объекта в формат, пригодный для хранения или передачи (например, JSON или бинарный формат). Десериализация — обратный процесс. В Python для этого используются модули pickle (бинарный формат) и json (текстовый формат). pickle поддерживает больше типов данных, но менее безопасен.
Ссылка на документацию по pickle
Вопросы, которые могут задать на собеседовании Senior Python Developer.
Проверьте себя без помощи поисковиков!
❓Как работает сериализация и десериализация объектов в Python?
Пример кода:
import pickle
data = {'key': 'value'}
serialized = pickle.dumps(data)
deserialized = pickle.loads(serialized)
print(deserialized) # Вывод: {'key': 'value'}
Ссылка на
Please open Telegram to view this post
VIEW IN TELEGRAM
#собесы #python #senior
Вопросы, которые могут задать на собеседовании Senior Python Developer.
Проверьте себя без помощи поисковиков!
❓Что такое генераторы и чем они отличаются от обычных функций?
Пример кода:
❗️ Генераторы — это функции, которые возвращают итератор с помощью ключевого слова yield. Они не выполняют весь код сразу, а возвращают значения по одному, что полезно для работы с большими данными. Генераторы экономят память, так как не хранят все значения в памяти одновременно.
Ссылка на документацию по генераторам
Вопросы, которые могут задать на собеседовании Senior Python Developer.
Проверьте себя без помощи поисковиков!
❓Что такое генераторы и чем они отличаются от обычных функций?
Пример кода:
def my_generator():
yield 1
yield 2
yield 3
gen = my_generator()
for value in gen:
print(value) # Вывод: 1, 2, 3
Ссылка на
Please open Telegram to view this post
VIEW IN TELEGRAM