Python | Вопросы собесов

Description
Разбираем вопросы с собеседований на Python разработчика. Django, Flask, FastApi

Реклама: @easyoffer_adv
Решай тесты - t.me/+20tRfhrwPpM4NDQy

Нарешивай задачи - t.me/+nsl4meWmhfQwNDVi
Ищи работу - t.me/+cXGKkrOY2-w3ZTky
Advertising
We recommend to visit
HAYZON
HAYZON
6,053,581 @hayzonn

لا اله الا الله محمد رسول الله

👤 𝐅𝐨𝐮𝐧𝐝𝐞𝐫: @Tg_Syprion
🗓 ᴀᴅᴠᴇʀᴛɪsɪɴɢ: @SEO_Fam
Мои каналы: @mazzafam

Last updated 3 weeks, 1 day ago

Architec.Ton is a ecosystem on the TON chain with non-custodial wallet, swap, apps catalog and launchpad.

Main app: @architec_ton_bot
Our Chat: @architec_ton
EU Channel: @architecton_eu
Twitter: x.com/architec_ton
Support: @architecton_support

Last updated 2 weeks, 2 days ago

Канал для поиска исполнителей для разных задач и организации мини конкурсов

Last updated 1 month ago

3 days, 19 hours ago

*🤔 *Что такое git?

Git — это система контроля версий, позволяющая отслеживать изменения в коде, управлять ветками и работать в команде. Она поддерживает распределённый подход, где каждый разработчик имеет локальную копию репозитория. Git используется для ведения истории изменений и упрощения совместной работы.

Ставь 👍 если знал ответ, 🔥 если нет
Забирай *📚*** Базу знаний

3 days, 23 hours ago
4 days, 2 hours ago

🤔 Виды наследования?

В объектно-ориентированном программировании наследование позволяет одному классу (называемому подклассом или наследником) унаследовать атрибуты и методы другого класса (называемого суперклассом или родительским классом).

🟠Одиночное наследование (Single Inheritance)
Одиночное наследование — это когда класс наследует только один родительский класс.

```
class Animal:
def speak(self):
return "Some sound"

class Dog(Animal):
def speak(self):
return "Woof!"

dog = Dog()
print(dog.speak()) # Woof!
```

🟠Множественное наследование (Multiple Inheritance)
Множественное наследование — это когда класс наследует несколько родительских классов.

```
class Animal:
def eat(self):
return "Eating"

class Pet:
def play(self):
return "Playing"

class Dog(Animal, Pet):
def speak(self):
return "Woof!"

dog = Dog()
print(dog.eat()) # Eating
print(dog.play()) # Playing
print(dog.speak()) # Woof!
```

🟠Многоуровневое наследование (Multilevel Inheritance)
Многоуровневое наследование — это когда класс наследует другой класс, который в свою очередь наследует другой класс.

```
class Animal:
def eat(self):
return "Eating"

class Mammal(Animal):
def walk(self):
return "Walking"

class Dog(Mammal):
def speak(self):
return "Woof!"

dog = Dog()
print(dog.eat()) # Eating
print(dog.walk()) # Walking
print(dog.speak()) # Woof!
```

*🟠*Иерархическое наследование (Hierarchical Inheritance)
Иерархическое наследование — это когда несколько классов наследуют один и тот же родительский класс.

```
class Animal:
def speak(self):
return "Some sound"

class Dog(Animal):
def speak(self):
return "Woof!"

class Cat(Animal):
def speak(self):
return "Meow!"

dog = Dog()
cat = Cat()
print(dog.speak()) # Woof!
print(cat.speak()) # Meow!
```

🟠Гибридное наследование (Hybrid Inheritance)
Гибридное наследование — это комбинация двух или более типов наследования. Это может быть сложная структура, включающая одиночное, множественное, многоуровневое и иерархическое наследование.

```
class Animal:
def eat(self):
return "Eating"

class Mammal(Animal):
def walk(self):
return "Walking"

class Bird(Animal):
def fly(self):
return "Flying"

class Bat(Mammal, Bird):
def use_sonar(self):
return "Using sonar"

bat = Bat()
print(bat.eat()) # Eating
print(bat.walk()) # Walking
print(bat.fly()) # Flying
print(bat.use_sonar()) # Using sonar
```

Ставь *👍*** и забирай *📚*** Базу знаний

3 months ago
3 months ago

? Что такое абстракция?

? Спрашивают в 3% собеседований

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

? Принцип абстракции

Абстракция позволяет сосредоточиться на том, что делает объект, а не на том, как он это делает. Это достигается путем:

1️⃣ Скрытия внутренней реализации: Пользователи объектов видят только методы и свойства, которые предоставляются классом, но не детали их реализации.
2️⃣Предоставления простого интерфейса: Классы могут предоставлять четко определенные методы, которые обеспечивают взаимодействие с объектами.

? Абстрактные классы и методы в Python

В Python абстракция часто реализуется с использованием абстрактных классов и методов. Абстрактные классы определяются с помощью модуля abc (Abstract Base Classes), а абстрактные методы обозначаются декоратором @abstractmethod.

Пример абстрактного класса

```
from abc import ABC, abstractmethod

class Animal(ABC):
@abstractmethod
def make_sound(self):
pass

@abstractmethod def move(self): pass

```

? Реализация абстрактного класса

Абстрактный класс Animal определяет два абстрактных метода: make_sound и move. Эти методы не имеют реализации и должны быть реализованы в подклассах. Попробуем создать подклассы:

```
class Dog(Animal):
def make_sound(self):
return "Bark"

def move(self): return "Run"

class Cat(Animal):
def make_sound(self):
return "Meow"

def move(self): return "Jump"

```

Теперь мы можем создать объекты классов Dog и Cat и использовать их методы, не задумываясь о деталях реализации.

```
dog = Dog()
print(dog.make_sound()) # Вывод: "Bark"
print(dog.move()) # Вывод: "Run"

cat = Cat()
print(cat.make_sound()) # Вывод: "Meow"
print(cat.move()) # Вывод: "Jump"
```

? Преимущества абстракции

1️⃣ Упрощение сложных систем: Абстракция помогает разбивать сложные системы на более управляемые части.
2️⃣ Повышение читабельности и поддерживаемости кода: Код становится более понятным, так как скрываются ненужные детали реализации.
3️⃣ Снижение зависимости кода: Изменения в реализации не влияют на пользователей класса, что позволяет более гибко изменять и расширять функциональность.

? Подводя итог

Абстракция в ООП позволяет скрывать детали реализации и предоставлять простой интерфейс для взаимодействия с объектами. В Python абстракция достигается через абстрактные классы и методы, которые определяются с использованием модуля abc и декоратора @abstractmethod.

?Кратко:

Абстракция скрывает детали реализации и предоставляет простой интерфейс для использования объектов. В Python это реализуется с помощью абстрактных классов и методов.

? ТОП ВОПРОСОВ С СОБЕСОВ

? База собесов | ? База тестовых

3 months ago

? Что такое MRO ?

MRO определяет порядок, в котором интерпретатор будет искать методы и атрибуты при их вызове в контексте множественного наследования. Это обеспечивает предсказуемость и избегает конфликтов при наследовании от нескольких классов.

Ставь ? если знал ответ и ? если нет

5 months, 3 weeks ago

Что такое абстракция ?
Спросят с вероятностью 3%

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

Основные аспекты

1️⃣Скрытие деталей реализации: Позволяет скрыть сложные детали реализации и показать только те части объекта, которые необходимы для его использования.
2️⃣Определение интерфейсов: Фокусируется на определении интерфейсов и методов, которые могут быть использованы для взаимодействия с объектом.
3️⃣Упрощение взаимодействия: Упрощает взаимодействие с объектами, предоставляя простой и понятный интерфейс.

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

Для создания абстрактных классов и методов в Python используется модуль abc (Abstract Base Classes).

Пример:

```
from abc import ABC, abstractmethod

class Animal(ABC):
@abstractmethod
def make_sound(self):
pass

class Dog(Animal):
def make_sound(self):
return "Bark"

class Cat(Animal):
def make_sound(self):
return "Meow"

# Создание экземпляров конкретных классов
dog = Dog()
cat = Cat()

print(dog.make_sound()) # Выведет: Bark
print(cat.make_sound()) # Выведет: Meow

# Попытка создания экземпляра абстрактного класса приведет к ошибке
# animal = Animal() # TypeError: Can't instantiate abstract class Animal with abstract methods make_sound
```

Основные компоненты

1️⃣Абстрактный класс (Animal): Определяет общие методы, которые должны быть реализованы в подклассах.
2️⃣Абстрактный метод (make_sound): Объявляется в абстрактном классе и должен быть реализован в любом конкретном подклассе.
3️⃣Конкретные классы (Dog и Cat): Реализуют абстрактный метод, предоставляя конкретную реализацию.
Преимущества
1️⃣Упрощение разработки: Позволяет сосредоточиться на высокоуровневом дизайне, не отвлекаясь на детали реализации.
2️⃣Повышение гибкости: Изменения в реализации могут быть сделаны без изменения интерфейсов, что облегчает модификацию и расширение кода.
3️⃣Улучшение читаемости: Абстрактные классы и методы делают код более понятным и структурированным, четко показывая, какие методы должны быть реализованы в подклассах.

Абстракция в ООП позволяет скрывать сложные детали реализации, предоставляя простой интерфейс для взаимодействия с объектами. Она упрощает разработку, улучшает читаемость кода и повышает его гибкость. Можно реализовать с помощью абстрактных классов и методов, используя модуль abc.

? Можно посмотреть Примеры как отвечают люди на этот вопрос, или перейти К списку 1096 вопроса на Python разработчика. Ставь ? если нравится контент

? База собесов | ? База тестовых

5 months, 3 weeks ago

Какая разница между методами str и repr ?
Спросят с вероятностью 3%

Методы __str__ и repr используются для получения строкового представления объекта, но они имеют разные цели и используются в разных контекстах.

Метод str
Цель: Должен возвращать строковое представление объекта, которое будет понятным и удобным для пользователя.
Использование: Метод str используется функцией str() и при вызове print().
Предназначение: Для более дружественного и читаемого представления объекта.
Метод repr
Цель: Должен возвращать строку, которая официально представляет объект и, по возможности, позволяет воссоздать объект, если передать эту строку в eval().
Использование: Метод repr используется функцией repr() и вызывается интерактивной оболочкой Python для отображения объектов.
Предназначение: Для более точного и детализированного представления объекта, предназначенного для разработчиков.

Пример

```
class MyClass:
def __init__(self, value):
self.value = value

def \_\_str\_\_(self): return f"MyClass with value {self.value}" def \_\_repr\_\_(self): return f"MyClass({self.value})"

obj = MyClass(10)

# Использование_(self):
print(str(obj)) # Выведет: MyClass with value 10
print(obj) # Выведет: MyClass with value 10 (так как print вызывает str)

# Использование
*repr*
print(repr(obj)) # Выведет: MyClass(10)
```

Основные различия
1️⃣Контекст использования:
__str__ предназначен для удобного представления объекта пользователю.
__repr__ предназначен для официального представления объекта, полезного для отладки и разработки.

2️⃣Вызываемые функции:
str() и print() используют str.
repr() и интерактивная оболочка Python используют repr.

3️⃣Содержимое строки:
__str__ возвращает удобочитаемую строку.
__repr__ возвращает строку, которая может включать больше технической информации и может использоваться для воссоздания объекта.

Пример с реализацией обоих методов

```
class Point:
def __init__(self, x, y):
self.x = x
self.y = y

def \_\_str\_\_(self): return f"Point({self.x}, {self.y})" def \_\_repr\_\_(self): return f"Point({self.x}, {self.y})"

p = Point(1, 2)

# Использование
*str*
print(str(p)) # Выведет: Point(1, 2)
print(p) # Выведет: Point(1, 2)

# Использование
*repr*
print(repr(p)) # Выведет: Point(1, 2)
```

Дополнительный пример с различием междуstr__ и _и repr
```
class ComplexNumber:
def __init__(self, real, imag):
self.real = real
self.imag = imag

def \_\_str\_\_(self): return f"{self.real} + {self.imag}i" def \_\_repr\_\_(self): return f"ComplexNumber({self.real}, {self.imag})"

c = ComplexNumber(3, 4)

# Использование
*str*
print(str(c)) # Выведет: 3 + 4i
print(c) # Выведет: 3 + 4i

# Использование
*\_ и repr* и
print(repr(c)) # Выведет: ComplexNumber(3, 4)
```

Метод str возвращает понятное для пользователя строковое представление объекта, используемое функцией str() и print(). Метод repr возвращает официальное строковое представление объекта, используемое функцией repr() и интерактивной оболочкой, и часто предназначен для отладки.

? Можно посмотреть Примеры как отвечают люди на этот вопрос, или перейти К списку 1096 вопроса на Python разработчика. Ставь ? если нравится контент

? База собесов | ? База тестовых

5 months, 3 weeks ago
8 months ago
We recommend to visit
HAYZON
HAYZON
6,053,581 @hayzonn

لا اله الا الله محمد رسول الله

👤 𝐅𝐨𝐮𝐧𝐝𝐞𝐫: @Tg_Syprion
🗓 ᴀᴅᴠᴇʀᴛɪsɪɴɢ: @SEO_Fam
Мои каналы: @mazzafam

Last updated 3 weeks, 1 day ago

Architec.Ton is a ecosystem on the TON chain with non-custodial wallet, swap, apps catalog and launchpad.

Main app: @architec_ton_bot
Our Chat: @architec_ton
EU Channel: @architecton_eu
Twitter: x.com/architec_ton
Support: @architecton_support

Last updated 2 weeks, 2 days ago

Канал для поиска исполнителей для разных задач и организации мини конкурсов

Last updated 1 month ago