📌 Чем let отличается от var ?
Ключевые слова let и var используются для объявления переменных, но между ними есть несколько важных различий, касающихся области видимости, поднятия (hoisting) и создания блока.
🤔 Область видимости (Scope)
➕ Var:
Объявления переменных с использованием
➕ Let:
В отличие от
🤔 Поднятие (Hoisting)
➕ Var:
Переменные, объявленные с ее помощью, поднимаются в начало функции или скрипта. Это означает, что они могут быть использованы до своего объявления, хотя до инициализации они будут иметь значение
➕ Let:
Переменные, объявленные с ее помощью, также поднимаются, но не инициализируются. Попытка доступа к такой переменной до её объявления приведет к ошибке
🤔 Создание в глобальном контексте
➕ Var:
Переменные, объявленные с ее помощью в глобальном контексте, становятся свойствами глобального объекта (
➕ Let:
Переменные, объявленные с ее помощью в глобальном контексте, не становятся свойствами глобального объекта.
🤔 Примеры:
🤔 Итог:
В то время как
Ключевые слова 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
26%
True True
22%
False False
17%
True False
13%
False True
23%
Ошибку
➡️Что такое cProfile?
cProfile - это модуль в стандартной библиотеке Python, который предоставляет возможность профилирования кода. Он позволяет измерить время выполнения каждой функции в вашем коде, а также количество вызовов каждой функции. Это делает его отличным инструментом для определения тех мест в вашем коде, которые являются узкими местами и могут быть оптимизированы.
➡️Как использовать cProfile?
Использование cProfile довольно просто. Вы просто импортируете модуль и вызываете функцию
➡️Пример использования 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()')
Что выведет этот код?
Anonymous Poll
48%
True True
13%
True False
22%
False True
4%
False False
14%
Узнать ответ
✈️Датаклассы - это удобный способ создавать классы для хранения информации. Они позволяют делать это с минимальным количеством кода. Например, если вы хотите хранить информацию о точке в трехмерном пространстве, вам не нужно писать много кода для создания класса и методов. Просто используйте dataclass, и Python сделает всю работу за вас.
➡️ Вот как это работает:
➡️Использование dataclasses позволяет существенно экономить время разработчика за счет избежания необходимости создавать множество методов для работы с данными, что делает код более чистым и понятным, повышая его читаемость. Благодаря этому, процесс понимания и поддержки кода становится более простым.
➡️ Вот как это работает:
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 позволяет существенно экономить время разработчика за счет избежания необходимости создавать множество методов для работы с данными, что делает код более чистым и понятным, повышая его читаемость. Благодаря этому, процесс понимания и поддержки кода становится более простым.
This media is not supported in your browser
VIEW IN TELEGRAM
Станьте AI-разработчиком на Python и зарабатывайте от 150.000₽ в месяц 🔥🔥🔥
Мы научим вас создавать и тренировать нейронные сети, и вы сможете:
1️⃣ Устроиться разработчиком в крупную компанию и зарабатывать от 150 тыс. ₽ в месяц
2️⃣ Разрабатывать такие проекты на заказ и зарабатывать от 500 тыс. ₽ за проект
3️⃣ Создать нейро-сотрудника в вашей компании и вырасти на +30-100% в зарплате
На интенсиве будет много практики: создадим 9 нейросетей за 1 вечер:
🧬 Оценка выброса CO2 по параметрам машины
🧬 Сегментация изображения для робота доставщика
🧬 Трекинг людей на видео
🧬 Распознавание речи
и другие
Ведущий интенсива - Senior AI-разработчик и основатель Университета искусственного интеллекта
🔥 Регистрируйтесь на бесплатный интенсив! Встречаемся в ближайшую среду. Вы узнаете, как освоить самую востребованную профессию и гарантированно зарабатывать!
Мы научим вас создавать и тренировать нейронные сети, и вы сможете:
1️⃣ Устроиться разработчиком в крупную компанию и зарабатывать от 150 тыс. ₽ в месяц
2️⃣ Разрабатывать такие проекты на заказ и зарабатывать от 500 тыс. ₽ за проект
3️⃣ Создать нейро-сотрудника в вашей компании и вырасти на +30-100% в зарплате
На интенсиве будет много практики: создадим 9 нейросетей за 1 вечер:
🧬 Оценка выброса CO2 по параметрам машины
🧬 Сегментация изображения для робота доставщика
🧬 Трекинг людей на видео
🧬 Распознавание речи
и другие
Ведущий интенсива - Senior AI-разработчик и основатель Университета искусственного интеллекта
🔥 Регистрируйтесь на бесплатный интенсив! Встречаемся в ближайшую среду. Вы узнаете, как освоить самую востребованную профессию и гарантированно зарабатывать!
▎Понимание функции Keyboard.add_hotkey
Функция
▎Примеры использования Keyboard.add_hotkey
Функция
▎Практические примеры применения Keyboard.add_hotkey
Рассмотрим пример, в котором мы хотим вывести "Привет, Мир!" при нажатии сочетания клавиш 'Ctrl + H'. Сначала необходимо импортировать модуль
Функция
keyboard.add_hotkey()
в Python позволяет назначить определенную функцию на сочетание клавиш, известное как горячая клавиша. Она принимает два основных аргумента: комбинацию клавиш и функцию, которая будет выполнена при нажатии этой комбинации. Синтаксис выглядит следующим образом: keyboard.add_hotkey(hotkey, callback, args=(), suppress=False, timeout=3, trigger_on_release=False)
. Горячая клавиша может состоять из одной клавиши, комбинации клавиш или даже последовательности нажатий.▎Примеры использования Keyboard.add_hotkey
Функция
keyboard.add_hotkey()
очень полезна для автоматизации задач и повышения интерактивности ваших скриптов на Python. Например, ее можно использовать для создания простого кейлоггера, автоматизации создания скриншотов или назначения пользовательских ярлыков для определенных действий в вашем приложении на Python. Важно помнить о необходимости ответственного и этичного использования этой функции, учитывая возможные злоупотребления.▎Практические примеры применения Keyboard.add_hotkey
Рассмотрим пример, в котором мы хотим вывести "Привет, Мир!" при нажатии сочетания клавиш 'Ctrl + H'. Сначала необходимо импортировать модуль
keyboard
. Если он не установлен, вы можете установить его с помощью pip. Затем определяем нашу функцию и добавляем горячую клавишу следующим образом:import keyboard
def hello_world():
print("Привет, Мир!")
keyboard.add_hotkey('ctrl + h', hello_world)
keyboard.wait()
❤2