🐍 Укус питона 🐍
2.56K subscribers
1.01K photos
23 videos
285 links
🐍 Канал о программировании на языке Python. Тематические уроки и лайфхаки.

👽 Админ - @it_dashka
🔊 Купить рекламу: https://telega.in/c/byteofpython

👉 Чат: @abyteofpython
👉 Поделиться с друзьями: @byteofpython
Download Telegram
✈️Датаклассы - это удобный способ создавать классы для хранения информации. Они позволяют делать это с минимальным количеством кода.

➡️ Вот как это работает:

from dataclasses import dataclass

@dataclass
class Point:
x: float
y: float
z: float

point = Point(1.5, 2.0, -3.7)

print(point) # Вывод: Point(x=1.5, y=2.0, z=-3.7)
print(point.x) # Вывод: 1.5
print(point.y) # Вывод: 2.0
print(point.z) # Вывод: -3.7


➡️Использование dataclasses позволяет существенно экономить время разработчика за счет избежания необходимости создавать множество методов для работы с данными, что делает код более чистым и понятным, повышая его читаемость. Благодаря этому, процесс понимания и поддержки кода становится более простым.

➡️Кроме того, dataclasses легко интегрируются с другими библиотеками и инструментами Python, что обеспечивает удобство в разработке и совместимость с другими компонентами проекта.
❤‍🔥4😁2🎉1
Что выведет этот код?
Anonymous Poll
30%
True
26%
False
35%
Ошибку
8%
Узнать ответ
📌 Чем let отличается от var ?

Ключевые слова let и var используются для объявления переменных, но между ними есть несколько важных различий, касающихся области видимости, поднятия (hoisting) и создания блока.

🤔 Область видимости (Scope)

Var:

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

Let:

В отличие от var, let имеет блочную область видимости. Это означает, что переменная, объявленная с помощью нее в блоке (например, в цикле или условном операторе), будет доступна только в пределах этого блока.

🤔 Поднятие (Hoisting)

Var:

Переменные, объявленные с ее помощью, поднимаются в начало функции или скрипта. Это означает, что они могут быть использованы до своего объявления, хотя до инициализации они будут иметь значение undefined.

Let:

Переменные, объявленные с ее помощью, также поднимаются, но не инициализируются. Попытка доступа к такой переменной до её объявления приведет к ошибке ReferenceError. Это поведение известно как "временная мертвая зона" (temporal dead zone, TDZ).

🤔 Создание в глобальном контексте

Var:

Переменные, объявленные с ее помощью в глобальном контексте, становятся свойствами глобального объекта (window в браузерах).

Let:

Переменные, объявленные с ее помощью в глобальном контексте, не становятся свойствами глобального объекта.

🤔 Примеры:
if (true) {
var varVariable = "Я доступен везде в функции";
let letVariable = "Я доступен только в этом блоке";
}


console.log(varVariable); // Работает, потому что var имеет функциональную область видимости
console.log(letVariable); // Ошибка, потому что let имеет блочную область видимости


console.log(a); // undefined из-за поднятия
var a = 3;


console.log(b); // ReferenceError из-за временной мертвой зоны
let b = 4;


🤔 Итог:

let
предоставляет более строгую и предсказуемую область видимости переменных, что улучшает управляемость кодом и уменьшает вероятность ошибок, связанных с неожиданным доступом или изменением данных. var может быть полезен, когда нужна функциональная область видимости, но сейчас let и const (для объявления констант) являются предпочтительными вариантами для управления переменными.

В то время как var объявляет переменную, доступную во всей функции, а let ограничивает видимость переменной блоком, в котором она объявлена.
👍1
Что выведет этот код?
Anonymous Poll
7%
True
51%
False
37%
Ошибку
5%
Узнать ответ
🖥 Упорство - это главное
4
Как звучат названия библиотек на русском.
3
➡️Что такое cProfile?

cProfile - это модуль в стандартной библиотеке Python, который предоставляет возможность профилирования кода. Он позволяет измерить время выполнения каждой функции в вашем коде, а также количество вызовов каждой функции. Это делает его отличным инструментом для определения тех мест в вашем коде, которые являются узкими местами и могут быть оптимизированы.

➡️Как использовать cProfile?

Использование cProfile довольно просто. Вы просто импортируете модуль и вызываете функцию cProfile.run(), передавая ей строку кода, который вы хотите проанализировать. Вы также можете использовать cProfile в качестве командной строки, передав ему имя файла Python, который вы хотите профилировать. Результаты профилирования могут быть отсортированы по различным критериям, таким как общее время выполнения, время выполнения на вызов и количество вызовов.

➡️Пример использования cProfile:

import cProfile

def sum_of_numbers():
return sum(range(100000))

cProfile.run('sum_of_numbers()')
🥰32❤‍🔥2