Что такое
dataclass
в Python, как работает параметр init=False
и зачем он нужен?Ответ
Пример использования
from dataclasses import dataclass, field
@dataclass
class Product:
name: str
price: float
discount: float = field(init=False) # Исключаем из __init__
def __post_init__(self):
self.discount = self.price * 0.1 # Вычисляем скидку после инициализации
# Создание экземпляра
item = Product(name="Laptop", price=1000)
print(item) # Product(name='Laptop', price=1000, discount=100.0)
Python Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10❤🔥1
Please open Telegram to view this post
VIEW IN TELEGRAM
🗿6👍4
В Python функция
difflib.get_close_matches()
находит наиболее похожие строки из списка на основе заданного шаблона. Это удобно для реализации поиска, проверки орфографии или подсказок для ввода.Python Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14❤🔥1
PyOxidizer
PyOxidizer — это инструмент, позволяющий упаковать Python-проект в единый исполняемый файл, включающий интерпретатор Python, все необходимые библиотеки и ресурсы. Это позволяет запускать ваши приложения без необходимости предварительной установки Python или каких-либо зависимостей.
Python Learning 👩💻
PyOxidizer — это инструмент, позволяющий упаковать Python-проект в единый исполняемый файл, включающий интерпретатор Python, все необходимые библиотеки и ресурсы. Это позволяет запускать ваши приложения без необходимости предварительной установки Python или каких-либо зависимостей.
Python Learning 👩💻
👍23🍾6😱2❤🔥1
Функция
shutil.copy()
из модуля shutil
позволяет копировать файлы из одного места в другое. Это удобно для работы с файлами и создания резервных копий.Python Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13❤🔥6
В Python функция
inspect.signature()
из модуля inspect
позволяет получать информацию о сигнатуре функций и методов. Это полезно для анализа кода во время выполнения, например, для отладки или динамического вызова функций.Python Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12🆒2❤🔥1🏆1
List comprehension — это мощный способ создавать списки в Python одной строкой. Давайте разберём, как работает этот синтаксис.
• range(10)
генерирует числа от 0 до 9.•
Для каждого числа x
из range(10)
выполняется выражение x**2
, которое возводит x
в квадрат.•
Результаты собираются в список squares
.Развернутый аналог:
squares = []
for x in range(10):
squares.append(x**2)
print(squares) #[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
Python Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍20❤🔥2
Использование изменяемых объектов (например, списков или словарей) в качестве значений по умолчанию для аргументов функции может привести к неожиданному поведению.
Значение по умолчанию (
[]
) создаётся один раз при определении функции и используется повторно для всех вызовов. Поэтому изменения сохраняются между вызовами функции.Используйте
None
и создавайте новый список внутри функции:def add_item(item, items=None):
if items is None:
items = []
items.append(item)
return items
print(add_item(1)) # [1]
print(add_item(2)) # [2] — теперь всё работает правильно!
Избегайте изменяемых значений по умолчанию, чтобы не создавать неожиданных побочных эффектов.
Python Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍33❤🔥2
Напоминаю, что у нас есть свой чат, где вы можете задать свой вопрос
https://yangx.top/Chat_for_Python
https://yangx.top/Chat_for_Python
❤🔥4👍2
В Python функция
sys.setrecursionlimit()
позволяет изменить максимальную глубину рекурсии. Это полезно для задач с глубокой рекурсией, таких как обход деревьев или выполнение сложных алгоритмов.Python Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍20❤🔥2
Пояснение
Функция generator возвращает 1 и 2 с помощью yield. При следующем вызове next(gen) выполняется return 3, вызывая StopIteration с атрибутом value равным 3. Это значение доступно через e.value.
Python Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8❤🔥3🏆1
Ответ:
Anonymous Quiz
27%
1, 2, 3
47%
1, 2, Exception: 3
17%
1, 2, Exception: None
9%
Ошибка выполнения
👍6🏆3🤔2❤🔥1
В Python функция
sys.intern()
оптимизирует хранение строк, создавая их в единственном экземпляре в памяти (интернирование). Это ускоряет сравнение строк за счёт сравнения ссылок, а не их содержимого.Python Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍18🔥2❤🔥1
Что такое
yield from
в Python и как оно помогает при работе с большими наборами данных?Ответ
Пример использования
def flatten(nested_list):
for item in nested_list:
if isinstance(item, list):
yield from flatten(item) # Делегирует генерацию к вложенному списку
else:
yield item
nested_list = [1, [2, [3, 4], 5], 6]
for num in flatten(nested_list):
print(num)
Python Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9❤🔥1
Функция
zip()
в Python используется для объединения нескольких итерируемых объектов (например, списков) в один итератор кортежей. Каждый кортеж содержит элементы, которые находятся на одинаковых позициях в исходных итерируемых объектах.Python Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍21❤🔥1🤔1
Множественное присваивание позволяет в одной строке присвоить значения сразу нескольким переменным. Также это позволяет легко обменивать значения между переменными без использования временной переменной.
Как это работает:
•
Справа от знака =
создаётся кортеж значений.•
Эти значения распаковываются и присваиваются переменным слева.Python Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍26❤🔥1🤔1
Пояснение
Класс D наследуется от B и C. Вызов d.greet() ищет метод greet согласно MRO. Порядок поиска: D -> B -> C -> A. Поэтому вызывается метод greet из класса B.
Python Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15❤🔥2
🤔13👍4🍾4
🌐Хотите создать веб-приложение, но не знаете, с чего начать?
📖На открытом уроке «Создание веб-приложения на Django за 1 час» вы сделаете первый шаг в мире веб-разработки. Мы начнём с идеи и за час создадим работающий проект.
⚙️Настроим окружение, создадим модель данных, разберёмся с админ-панелью и выведем результат на экран. Вы увидите, что программирование на Python — это просто, если за дело берутся профессионалы!
👉Присоединяйтесь 25 декабря в 20:00 мск и получите скидку🥳 на участие в большом курсе «Python Developer. Basic»: https://clck.ru/3FMMQR
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
📖На открытом уроке «Создание веб-приложения на Django за 1 час» вы сделаете первый шаг в мире веб-разработки. Мы начнём с идеи и за час создадим работающий проект.
⚙️Настроим окружение, создадим модель данных, разберёмся с админ-панелью и выведем результат на экран. Вы увидите, что программирование на Python — это просто, если за дело берутся профессионалы!
👉Присоединяйтесь 25 декабря в 20:00 мск и получите скидку🥳 на участие в большом курсе «Python Developer. Basic»: https://clck.ru/3FMMQR
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
🤔4❤🔥2👍1😱1🎄1