CODERIKK
91 subscribers
68 photos
59 links
Лучший авторский контент 💙
По вопросам: @AgentCoderikkBot
Изучаем Python, SQL и tg-ботов
Download Telegram
Весь материал будет разделен хэштегами, для более быстрой навигации внутри канала для вашего удобства:
#SQL #Python #TGBot #CV #ML #AI
и другие 🧑🏻‍💻 Что соответствует направлению поста и его тематике.

Знания мы будем делить по Дрейфусовской модели.
Но выделим 3-и уровня сложности:
🥉 #Начинающий
🥈 #Продвинутый
🥇 #Опытный

Также здесь я буду публиковать учебники, которые помогли мне в становлении программистом #Book

И различные обучающие материалы и курсы, которые помогут и вам набраться опыта в различных направлениях #Course

Моя задача - это качественно и кратко выдавать вам материал, который помогает мне в профессии, объяснять его значимость и применения в работе для вас 💙
ООП в Python #1 📦

Представьте, что программирование – это магия, а ООП (объектно-ориентированное программирование) – ваша волшебная палочка. 🪄 ООП превращает код в элегантные заклинания, которые легко читать и поддерживать.

Зачем нужно ООП?
🔹Организация кода: ООП структурирует код, делая его чистым и организованным.
🔹Повторное использование кода: Написали класс один раз – используйте его сколько угодно!
🔹Инкапсуляция: Скрывает детали реализации, предоставляя только нужное.
🔹Наследование: Создавайте новые классы на основе существующих, получая все их преимущества.
🔹Полиморфизм: Разные объекты выполняют одно действие по-разному.

Почему это важно?
🔹Упрощение поддержки и обновления: Легче поддерживать и обновлять структурированный код.
🔹Совместная работа: ООП делает код понятным для всей команды.
🔹Расширяемость: Легко добавлять новые функции и изменять существующие.

➡️Читайте нас в Telegram и Сетке

#CODERIKK #ООП #Python #Программирование #Обучение #Начинающийт
ООП в Python #2

Сегодня мы начинаем серию уроков по основам ООП на Python. В этом посте мы рассмотрим, как создавать и использовать классы и объекты.

🔸Что такое класс и объект?
Класс – это шаблон, который описывает, как должны быть устроены объекты.
Объект – это экземпляр класса, конкретная реализация этого шаблона.

🔹Создание класса
Для создания класса в Python используется ключевое слово class. Давайте создадим простой класс Car:
class Car:
def __init__(self, make, model, year):
self.make = make
self.model = model
self.year = year

def display_info(self):
print(f"{self.year} {self.make} {self.model}")


🔹Создание объекта
После создания класса, можно создавать объекты этого класса. Объект создается путем вызова класса как функции:
my_car = Car("Toyota", "Corolla", 2020)


🔹Использование методов и атрибутов
Мы можем обращаться к атрибутам и методам объекта с помощью оператора точки:
print(my_car.make)  # Вывод: Toyota
my_car.display_info() # Вывод: 2020 Toyota Corolla


🔹Пример работы с классом
Давайте создадим несколько объектов и выведем их информацию:
car1 = Car("Honda", "Civic", 2019)
car2 = Car("Ford", "Mustang", 2022)

car1.display_info() # Вывод: 2019 Honda Civic
car2.display_info() # Вывод: 2022 Ford Mustang


🔸Заключение
Классы и объекты – основа ООП. Понимание их принципов поможет вам создавать гибкие и масштабируемые программы. В следующем уроке мы рассмотрим инкапсуляцию и управление доступом к данным. Оставайтесь с нами! 🚀

➡️Читайте нас в Telegram и Сетке

#CODERIKK #Python #ООП #Классы #Программирование #Обучение
ООП в Python #3

В нашем втором уроке по основам ООП на Python мы рассмотрим важнейшую концепцию – инкапсуляцию и управление доступом к данным!

🔸Что такое инкапсуляция?
Инкапсуляция – это механизм объединения данных и методов, которые работают с этими данными, внутри одного класса. Это помогает скрыть внутреннюю реализацию объекта и защищает данные от некорректного использования.

🔸Управление доступом к данным.
В Python доступ к данным можно регулировать с помощью модификаторов доступа. Существует три уровня доступа:

🔹Публичный (public) – атрибуты и методы доступны из любого места.
🔹Защищенный (protected) – атрибуты и методы доступны только внутри класса и его подклассов.
🔹Приватный (private) – атрибуты и методы доступны только внутри класса.

🔹Пример реализации
Рассмотрим пример класса BankAccount:
class BankAccount:
def __init__(self, owner, balance):
self.owner = owner # Публичный атрибут
self._balance = balance # Защищенный атрибут

def deposit(self, amount):
if amount > 0:
self._balance += amount # Доступ к защищенному атрибуту
else:
print("Invalid deposit amount")

def withdraw(self, amount):
if 0 < amount <= self._balance:
self._balance -= amount # Доступ к защищенному атрибуту
else:
print("Invalid withdraw amount")

def get_balance(self):
return self._balance # Публичный метод для доступа к защищенному атрибуту


🔹Приватные атрибуты и методы
Для создания приватных атрибутов и методов используется двойное подчеркивание __:
class SecretAccount:
def __init__(self, owner, balance):
self.__owner = owner # Приватный атрибут
self.__balance = balance # Приватный атрибут

def __update_balance(self, amount):
self.__balance += amount # Приватный метод

def get_owner(self):
return self.__owner # Публичный метод для доступа к приватному атрибуту

def get_balance(self):
return self.__balance # Публичный метод для доступа к приватному атрибуту


🔹Доступ к защищенным и приватным данным
account = BankAccount("Alice", 1000)
print(account.owner) # Доступ к публичному атрибуту

# Доступ к защищенному атрибуту через публичный метод
print(account.get_balance())

# Прямой доступ к защищенному атрибуту (не рекомендуется)
print(account._balance)

secret_account = SecretAccount("Bob", 5000)
print(secret_account.get_owner()) # Доступ к приватному атрибуту через публичный метод
print(secret_account.get_balance()) # Доступ к приватному атрибуту через публичный метод

# Прямой доступ к приватному атрибуту (ошибка)
# print(secret_account.__balance) # Ошибка AttributeError


🔸Заключение
Инкапсуляция и управление доступом к данным помогают создавать более безопасные и управляемые программы. В следующем уроке мы изучим наследование и создание иерархий классов. Оставайтесь с нами! 🚀

➡️Читайте нас в Telegram и Сетке

#CODERIKK #ООП #Python #Инкапсуляция #Программирование #Обучение
ООП в Python #4

В этом уроке мы рассмотрим наследование и создание иерархий классов, что является еще одной важной концепцией ООП на Python 🐍

🔸 Что такое наследование?
Наследование – это механизм, позволяющий одному классу (дочернему) наследовать атрибуты и методы другого класса (родительского). Это позволяет создавать новые классы на основе существующих и повторно использовать код.

🔹Пример наследования
Рассмотрим пример с классами Animal и Dog. Класс Dog будет наследовать от класса Animal.
class Animal:
def __init__(self, name, species):
self.name = name
self.species = species

def make_sound(self):
print("Some generic animal sound")

class Dog(Animal):
def __init__(self, name, breed):
super().__init__(name, "Dog") # Вызов конструктора родительского класса
self.breed = breed

def make_sound(self):
print("Woof! Woof!") # Переопределение метода


🔹Создание объектов и использование методов
Теперь создадим объекты классов Animal и Dog и используем их методы:
generic_animal = Animal("Generic Animal", "Unknown")
generic_animal.make_sound() # Вывод: Some generic animal sound

buddy = Dog("Buddy", "Golden Retriever")
buddy.make_sound() # Вывод: Woof! Woof!
print(f"{buddy.name} is a {buddy.breed}") # Вывод: Buddy is a Golden Retriever


🔹Переопределение методов
В дочернем классе Dog мы переопределили метод make_sound родительского класса Animal. Это позволяет дочернему классу предоставлять свою реализацию методов родительского класса.

🔹Множественное наследование
Python поддерживает множественное наследование, что означает, что класс может наследоваться от нескольких классов:
class CanFly:
def fly(self):
print("I can fly!")

class CanSwim:
def swim(self):
print("I can swim!")

class Duck(Animal, CanFly, CanSwim):
def __init__(self, name):
super().__init__(name, "Duck")

def make_sound(self):
print("Quack! Quack!")

ducky = Duck("Daffy")
ducky.make_sound() # Вывод: Quack! Quack!
ducky.fly() # Вывод: I can fly!
ducky.swim() # Вывод: I can swim!


🔸Заключение
Наследование позволяет создавать иерархии классов и повторно использовать код, что делает программирование более эффективным и организованным. В следующем уроке мы изучим полиморфизм и работу с методами. Оставайтесь с нами! 🚀

➡️Читайте нас в Telegram и Сетке

#CODERIKK #Python #ООП #Наследование #Программирование #Обучение
ООП в Python #6

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

🔸Что такое магические методы?
Магические методы – это специальные методы, которые начинаются и заканчиваются двойным подчеркиванием __. Эти методы позволяют вам перегружать стандартные операторы и методы для пользовательских классов.

🔹Пример магических методов
Рассмотрим класс Vector с перегруженными операторами сложения и строкового представления:
class Vector:
def __init__(self, x, y):
self.x = x
self.y = y

def __add__(self, other):
return Vector(self.x + other.x, self.y + other.y)

def __str__(self):
return f"Vector({self.x}, {self.y})"


🔹Перегрузка оператора сложения
Создадим два объекта класса Vector и сложим их:
v1 = Vector(2, 3)
v2 = Vector(4, 5)
v3 = v1 + v2
print(v3) # Вывод: Vector(6, 8)


Метод __add__ позволяет использовать оператор + для сложения двух объектов Vector.

🔹Другие магические методы
Вот несколько часто используемых магических методов:
init:
Инициализация объекта (конструктор).
repr:
Официальное строковое представление объекта.
str:
Читаемое строковое представление объекта.
len:
Возвращает длину объекта.
eq:
Проверка на равенство объектов.
lt:
Проверка, что один объект меньше другого.

🔹Пример использования нескольких магических методов
Дополнительно добавим методы eq и repr в класс Vector:
class Vector:
def __init__(self, x, y):
self.x = x
self.y = y

def __add__(self, other):
return Vector(self.x + other.x, self.y + other.y)

def __eq__(self, other):
return self.x == other.x and self.y == other.y

def __repr__(self):
return f"Vector({self.x}, {self.y})"

def __str__(self):
return f"Vector({self.x}, {self.y})"


🔹Использование новых магических методов
Создадим и сравним два объекта класса Vector:
v1 = Vector(2, 3)
v2 = Vector(2, 3)
v3 = Vector(4, 5)

print(v1 == v2) # Вывод: True
print(v1 == v3) # Вывод: False
print(repr(v1)) # Вывод: Vector(2, 3)


🔸Заключение
Магические методы и перегрузка операторов позволяют вам изменять поведение объектов в Python и создавать более удобные и интуитивно понятные интерфейсы. В следующем уроке мы рассмотрим практические примеры использования ООП в реальных проектах. Оставайтесь с нами! 🚀

➡️Читайте нас в Telegram и Сетке

#CODERIKK #Python #ООП #МагическиеМетоды #Программирование #Обучение
ООП в Pyton #7

В нашем заключительном уроке по основам ООП на Python мы рассмотрим, как применять объектно-ориентированные принципы в реальных проектах. ООП помогает создавать более структурированные и масштабируемые программы. Рассмотрим несколько примеров.

🔸 Веб-разработка
ООП активно используется в веб-разработке для организации кода. Рассмотрим фреймворк Django, который построен на принципах ООП. В Django модели представляют собой классы, наследуемые от models.Model.
from django.db import models

class BlogPost(models.Model):
title = models.CharField(max_length=100)
content = models.TextField()
created_at = models.DateTimeField(auto_now_add=True)

def __str__(self):
return self.title


Здесь класс BlogPost представляет модель блога, а атрибуты класса – это поля базы данных.

🔸 Игровая разработка
В игровой разработке классы используются для представления игровых объектов. Рассмотрим простой пример на Pygame:
import pygame

class Player(pygame.sprite.Sprite):
def __init__(self):
super().__init__()
self.image = pygame.Surface((50, 50))
self.image.fill((255, 0, 0))
self.rect = self.image.get_rect()
self.rect.center = (100, 100)

def update(self):
self.rect.x += 5 # Двигаем игрока вправо

pygame.init()
screen = pygame.display.set_mode((800, 600))
player = Player()
all_sprites = pygame.sprite.Group()
all_sprites.add(player)

running = True
while running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False

all_sprites.update()
screen.fill((0, 0, 0))
all_sprites.draw(screen)
pygame.display.flip()

pygame.quit()


Здесь класс Player наследуется от pygame.sprite.Sprite и представляет игрока.

🔸Работа с API
ООП удобно использовать для работы с API. Рассмотрим пример создания класса для работы с API:
import requests

class WeatherAPI:
def __init__(self, api_key):
self.api_key = api_key
self.base_url = "http://api.openweathermap.org/data/2.5/weather"

def get_weather(self, city):
params = {
'q': city,
'appid': self.api_key,
'units': 'metric'
}
response = requests.get(self.base_url, params=params)
return response.json()

api = WeatherAPI("your_api_key_here")
weather = api.get_weather("London")
print(weather)


🔸Анализ данных
В анализе данных классы могут использоваться для структурирования процесса анализа. Рассмотрим пример класса для обработки данных:
import pandas as pd

class DataProcessor:
def __init__(self, file_path):
self.data = pd.read_csv(file_path)

def clean_data(self):
self.data.dropna(inplace=True)
self.data.reset_index(drop=True, inplace=True)

def summarize_data(self):
return self.data.describe()

processor = DataProcessor("data.csv")
processor.clean_data()
summary = processor.summarize_data()
print(summary)


🔸Заключение
ООП – мощный инструмент для организации кода в реальных проектах. Независимо от области применения, будь то веб-разработка, игры, работа с API или анализ данных, принципы ООП помогают создавать более читаемые, поддерживаемые и масштабируемые программы.

Спасибо, что прошли с нами этот курс по основам ООП на Python! Оставайтесь с нами для дальнейших уроков и примеров! 🚀

➡️Читайте нас в Telegram и Сетке

#CODERIKK #Python #ООП #РеальныеПроекты #Программирование #Обучение
ООП в Python #8

Давайте подведем итоги нашего курса по основам объектно-ориентированного программирования (ООП) на Python.

🔸Мы рассмотрели ключевые концепции ООП, их применение и практические примеры. Вот краткий обзор того, что мы изучили:

🔹 Создание и использование классов и объектов
Мы начали с основ, разобравшись, что такое классы и объекты. Классы – это шаблоны для создания объектов. Объекты – это экземпляры классов. Мы создали простой класс Car и научились создавать объекты этого класса и взаимодействовать с их атрибутами и методами.

🔹Инкапсуляция и управление доступом к данным
Далее мы изучили инкапсуляцию, которая позволяет скрывать внутренние данные класса и предоставлять интерфейс для их взаимодействия. Мы рассмотрели уровни доступа: публичный, защищенный и приватный.

🔹Наследование и создание иерархий классов
Затем мы перешли к наследованию, которое позволяет создавать новые классы на основе существующих. Мы рассмотрели, как наследовать атрибуты и методы родительского класса и переопределять их в дочерних классах.

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

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

🔹Практические примеры использования
В заключительном уроке мы рассмотрели практические примеры использования ООП в различных областях: веб-разработка, игровая разработка, работа с API и анализ данных. Мы увидели, как принципы ООП помогают создавать более структурированные и масштабируемые программы.

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

Спасибо, что прошли с нами этот курс! Оставайтесь с нами 🚀

➡️Читайте нас в Telegram и Сетке

#CODERIKK #Python #ООП #Программирование #Обучение
Сегодня мы поговорим о том, что общего между тремя важными терминами из различных инструментов для работы с данными: ВПР в Excel, merge в Pandas и JOIN в SQL. Несмотря на то, что они используются в разных средах, все эти функции выполняют схожую задачу – объединение данных из разных источников.

🔸ВПР (VLOOKUP) в Excel
ВПР (Вызов по параметру строки) – это функция Excel, которая используется для поиска значения в одном столбце и возврата соответствующего значения из другого столбца.

=ВПР(A2; Лист2!A:B; 2; ЛОЖЬ)

Этот пример ищет значение из ячейки A2 на листе Лист2 в столбце A и возвращает значение из столбца B в той же строке.

🔸merge в Pandas
Это метод библиотеки Pandas в Python, который используется для объединения DataFrame'ов по определенным ключам или столбцам.
import pandas as pd

df1 = pd.DataFrame({'key': ['A', 'B', 'C'], 'value': [1, 2, 3]})
df2 = pd.DataFrame({'key': ['A', 'B', 'D'], 'value': [4, 5, 6]})

merged_df = pd.merge(df1, df2, on='key', how='inner')
print(merged_df)

Этот пример объединяет два DataFrame по ключевому столбцу key и использует тип соединения inner, который возвращает только совпадающие записи.

🔸 JOIN в SQL
Это операция, которая используется для объединения строк из двух или более таблиц на основе связанного столбца между ними.
SELECT A.*, B.*
FROM TableA A
JOIN TableB B ON A.key = B.key

Этот запрос объединяет таблицы TableA и TableB по общему столбцу key и возвращает строки, где значения в этом столбце совпадают.

🔸Общее между ВПР, merge и JOIN
Все три функции выполняют задачу объединения данных:
🔹Поиск и сопоставление: Все эти методы ищут совпадающие значения в разных источниках данных и объединяют их.
🔹Ключи для объединения: Они используют ключевые столбцы или поля для определения, какие строки данных должны быть объединены.
🔹Типы объединений: В случае с merge и JOIN можно использовать различные типы объединений, такие как inner, outer, left, и right, что определяет, какие данные включать в результат объединения.

🔸Заключение
Независимо от инструмента, будь то Excel, Pandas или SQL, умение объединять данные является важным навыком для анализа и обработки данных. Эти функции помогают эффективно работать с большими наборами данных, делая процесс анализа более удобным и продуктивным.

➡️Читайте нас в Telegram и Сетке

#CODERIKK #Excel #Python #Pandas #SQL #Данные #Программирование #Обучение
Вопросы с собеседований #18

🔹Как в Python реализован механизм управления памятью?

🔸
В Python управление памятью осуществляется с помощью автоматического сборщика мусора (Garbage Collector). Python использует подсчет ссылок и алгоритм циклического сбора мусора для управления памятью. Подсчет ссылок отслеживает количество ссылок на объект, а циклический сборщик обнаруживает и удаляет циклические ссылки, которые не могут быть очищены подсчетом ссылок.

➡️Читайте нас в Telegram и Сетке

#Coderikk #Собеседование #Python
Автоматический сборщик мусора в Python #1

Python — это мощный и удобный язык программирования, и одной из его ключевых особенностей является автоматический сборщик мусора (Garbage Collector).

🔹Как работает сборщик мусора в Python?

🔸Garbage Collector (GC) в Python автоматически управляет памятью, освобождая её от объектов, которые больше не используются программой. Это помогает избежать утечек памяти и улучшить производительность.

🔹Принцип работы

🔸Подсчет ссылок (Reference Counting)
: Python отслеживает количество ссылок на каждый объект в памяти. Когда количество ссылок на объект становится нулевым, память, занимаемая этим объектом, автоматически освобождается.

🔸Сборка циклических ссылок (Cycle Detection)
: Иногда объекты могут ссылаться друг на друга, образуя циклы, которые невозможно удалить с помощью подсчета ссылок. Python использует алгоритм сборки циклических ссылок, чтобы обнаружить и удалить такие циклы.

➡️Читайте нас в Telegram и Сетке

#Coderikk #Собеседование #Python
Автоматический сборщик мусора в Python #2

🔹Особенности GC в Python

🔸Автоматическое управление
: Пользователям не нужно вручную управлять памятью, что упрощает разработку.

🔸Настраиваемый GC: Python предоставляет модули gc, с помощью которых можно контролировать поведение сборщика мусора, включая настройку порогов для запуска сборки.

🔸Сборка циклов: GC эффективно обнаруживает и устраняет циклы ссылок, предотвращая утечки памяти.

Пример использования модуля gc:

import gc

# Включение автоматического сборщика мусора
gc.enable()

# Отключение сборщика мусора
gc.disable()

# Принудительный запуск сборщика мусора
gc.collect()

# Получение информации о текущем состоянии GC
print(gc.get_stats())


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

➡️Читайте нас в Telegram и Сетке

#Coderikk #Python
Вопросы с собеседований #19

🔹Объясните разницу между deepcopy и shallow copy в Python.

🔸
shallow copy создаёт поверхностную копию объекта, что означает копирование только самого объекта, но не вложенных объектов. deepcopy создаёт глубокую копию объекта, включая все вложенные объекты, создавая независимые копии всех уровней.

➡️Читайте нас в Telegram и Сетке

#Coderikk #Собеседование #Python
Вопросы с собеседований #20

🔹Как в Python работают декораторы?

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

def decorator_func(original_func):
def wrapper_func():
print("Something is happening before the function.")
original_func()
print("Something is happening after the function.")
return wrapper_func

@decorator_func
def say_hello():
print("Hello!")

say_hello()



➡️Читайте нас в Telegram и Сетке

#Coderikk #Собеседование #Python
Вопросы с собеседований #21

🔹Как вы можете обработать исключения в Python?

🔸
В Python исключения обрабатываются с помощью конструкции try-except. В блоке try помещается код, который может вызвать исключение, а в блоке except — код для обработки возможных исключений. Можно также использовать finally для кода, который выполнится независимо от того, произошло исключение или нет.

try:
result = 10 / 0
except ZeroDivisionError:
print("Cannot divide by zero.")
finally:
print("This is executed regardless of exceptions.")


➡️Читайте нас в Telegram и Сетке

#Coderikk #Собеседование #Python
Вопросы с собеседований #22

🔹Что такое генераторы и как они работают?

🔸
Генераторы в Python — это функции, которые возвращают итератор и используются для генерации последовательности значений при запросе. Они определяются с помощью ключевого слова yield вместо return, что позволяет сохранять состояние функции между вызовами.

def simple_generator():
yield 1
yield 2
yield 3

gen = simple_generator()
for value in gen:
print(value)


➡️Читайте нас в Telegram и Сетке

#Coderikk #Собеседование #Python
Вопросы с собеседований #23

🔹Объясните разницу между list, tuple и set.

🔸
list — изменяемая последовательность, допускающая дубликаты. tuple — неизменяемая последовательность, также допускающая дубликаты. set — изменяемое множество, не допускающее дубликаты и не гарантирует порядок элементов.


➡️Читайте нас в Telegram и Сетке

#Coderikk #Собеседование #Python
Вопросы с собеседований #24

🔹Как создать класс в Python?

🔸
Класс создаётся с помощью ключевого слова class. В классе могут быть определены методы и атрибуты. Метод __init__ является конструктором класса и вызывается при создании нового объекта. Можно также определить другие методы, такие как str для строкового представления объекта.

class Person:
def __init__(self, name):
self.name = name

def greet(self):
return f"Hello, my name is {self.name}."



➡️Читайте нас в Telegram и Сетке

#Coderikk #Собеседование #Python
Вопросы с собеседований #25

🔹Как Python реализует многопоточность и какие есть ограничения?

🔸
В Python многопоточность реализована с помощью модуля threading. Однако из-за Global Interpreter Lock (GIL) настоящая параллелизация потоков в CPython невозможна. GIL позволяет только одному потоку выполнять Python байт-код в данный момент времени. Для истинной параллельной обработки можно использовать модули multiprocessing или asyncio.


➡️Читайте нас в Telegram и Сетке

#Coderikk #Собеседование #Python
Вопросы с собеседований #26

🔹Что такое lambda функции и когда их стоит использовать?

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

add = lambda x, y: x + y
print(add(5, 3))


➡️Читайте нас в Telegram и Сетке

#Coderikk #Собеседование #Python