Please open Telegram to view this post
VIEW IN TELEGRAM
❤6🔥1
Метаклассы в Python [Часть 2]
🤩 Влияние метаклассов на Python. Метаклассы влияют на структуру Python, определяя, как классы создаются. Каждый раз, когда вы создаете новый класс, Python ищет метакласс для определения того, каким образом должен быть создан класс.
🫡 Процесс создания класса: Обычно, когда вы определяете класс, Python следует трём шагам:
1. Он определяет все атрибуты класса.
2. Он создает пространство имен для этих атрибутов.
3. Он связывает имя класса с этим пространством имен.
💡 Как метаклассы вмешиваются: Метаклассы изменяют этот процесс, позволяя нам влиять на каждый из этих шагов. Например, метакласс может автоматически добавлять новые методы или атрибуты во все создаваемые классы.
🛠 Этот пример показывает, как метакласс
☝️ В прикрепленной картинке вы найдете часто встречающийся пример использования метаклассов - паттерн Singleton.
🔝 PyBytes Media | ✉️ Telegram / 📷 Instagram / 📈 Mentor Service
1. Он определяет все атрибуты класса.
2. Он создает пространство имен для этих атрибутов.
3. Он связывает имя класса с этим пространством имен.
class Meta(type):
⠀⠀def __new__(cls, name, bases, dct):
⠀⠀⠀⠀# Добавляем новый метод к классу
⠀⠀⠀⠀dct['new_method'] = lambda self: 'Hello'
⠀⠀⠀⠀return super().__new__(cls, name, bases, dct)
⠀⠀
class MyClass(metaclass=Meta):
⠀⠀pass
⠀⠀
# MyClass теперь имеет new_method
print(MyClass().new_method()) # Выведет 'Hello'
Meta добавляет метод new_method ко всем классам, для которых он используется как метакласс. Это демонстрирует, как метаклассы могут модифицировать или расширять классы в Python.Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥2🌭2👍1💋1😈1
Logging в Python [Часть 1]
😈 Мы все любим использовать
📌 Когда дело доходит до серьезной разработки, использование
🔄 Заменить
🛠 Попробуйте использовать разные уровни логирования, такие как DEBUG, INFO, WARNING, ERROR, и CRITICAL, для более эффективного управления выводом вашего кода. Таким образом, вы сможете легко отличить важные сообщения от обычных уведомлений.
🔝 PyBytes Media | ✉️ Telegram / 📷 Instagram / 📈 Mentor Service
print для отладки и понимания того, что происходит в нашем коде. Это как оставлять себе небольшие записки, чтобы не забыть, как работает наша программа. Однако, постоянное добавление и удаление этих print может превратиться в хаос, особенно когда проект растет. print становится плохой практикой. Оно не предлагает уровней гранулярности или гибкости, которые предоставляет logging. С logging вы можете устанавливать уровни сообщений, фильтровать их и направлять в различные места, не изменяя код.
import logging
logging.basicConfig(level=logging.INFO)
logging.info("This is an info message")
print на logging не только улучшит читаемость кода, но и позволит вам контролировать, какие сообщения отображаются, когда и где. Это особенно важно для больших проектов или при работе в команде.Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥4💋3
Введение в асинхронное программирование в Python [Часть 1]
🔍 Асинхронное программирование в Python начало набирать популярность с введением модуля
🔄 Традиционное синхронное программирование предполагает выполнение кода построчно, одну задачу за другой. Это может приводить к неэффективному использованию ресурсов, когда процесс ждет завершения операции ввода/вывода.
🚀 В отличие от этого, асинхронное программирование позволяет выполнять другие задачи во время ожидания, тем самым повышая общую эффективность и производительность программы.
👀 В следующей части мы углубимся в основы
🔝 PyBytes Media | ✉️ Telegram / 📷 Instagram / 📈 Mentor Service
asyncio. Это парадигма, позволяющая программам выполнять множество задач одновременно, что особенно полезно для I/O задач, таких как веб-запросы, чтение и запись файлов.
import time
⠀⠀
def count():
⠀⠀print("Один")
⠀⠀time.sleep(1) # Имитация длительной операции
⠀⠀print("Два")
⠀⠀
def main():
⠀⠀for _ in range(3):
⠀⠀⠀⠀count()
⠀⠀
main()
asyncio, и как его можно использовать для создания асинхронных приложений.Please open Telegram to view this post
VIEW IN TELEGRAM
❤4🔥4😨2
Основы `asyncio`: Event loop и корутины [Часть 2]
❤️ В сердце асинхронного программирования в Python лежит понятие Event loop. Это центральный цикл событий, который управляет выполнением всех асинхронных операций. Event loop отслеживает все запущенные корутины и обеспечивает их выполнение, переключаясь между ними в нужные моменты.
💡 Корутины - это особые функции, выполнение которых можно приостановить и возобновить в любой момент. Они определяются с помощью синтаксиса
➡️ Важно понимать, что корутины сами по себе не выполняются автоматически. Для их выполнения они должны быть переданы в Event loop с помощью функций
💫 Понимание этих основ является ключевым для глубокого изучения асинхронного программирования в Python. В следующих частях мы рассмотрим, как работать с асинхронными функциями и управлять асинхронными задачами.
🔝 PyBytes Media | ✉️ Telegram / 📷 Instagram / 📈 Mentor Service
async def и предназначены для использования с await, который приостанавливает выполнение корутины, позволяя Event loop обрабатывать другие задачи.
import asyncio
⠀⠀
async def hello():
⠀⠀print('Hello')
⠀⠀await asyncio.sleep(1)
⠀⠀print('World')
asyncio.run(), loop.create_task() или через ожидание с await.
asyncio.run(hello())
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥7🔥3🙈2
Работа с асинхронными функциями: `await`, `async with`, `async for` [Часть 3]
📈 Ключевое слово
🔓 Асинхронный контекстный менеджер
🔄 Асинхронный итератор
😠 Использование этих асинхронных инструментов позволяет писать чистый и понятный код, который легко поддерживать и масштабировать. В следующей части мы углубимся в создание и управление задачами.
🔝 PyBytes Media | ✉️ Telegram / 📷 Instagram / 📈 Mentor Service
await используется в асинхронном программировании Python для приостановки выполнения корутины до тех пор, пока не завершится ожидаемая асинхронная операция. Это позволяет другим задачам выполняться во время ожидания.
async def fetch_data():
⠀⠀# Представим, что это асинхронный запрос к базе данных
⠀⠀await asyncio.sleep(2) # Задержка имитирует время ожидания данных
⠀⠀return {'data': 1}
async def main():
⠀⠀data = await fetch_data()
⠀⠀print(data)
async with используется для гарантии корректного управления асинхронными ресурсами, такими как открытие и закрытие файлов или соединений с базой данных.
async def read_file():
⠀⠀async with aiofiles.open('filename', 'r') as f:
⠀⠀⠀⠀content = await f.read()
⠀⠀⠀⠀print(content)
async for используется для итерации по асинхронно генерируемым последовательностям, например, при постепенном получении данных из веб-сервиса.
async def get_data():
⠀⠀for i in range(5):
⠀⠀⠀⠀await asyncio.sleep(1)
⠀⠀⠀⠀yield i
async def main():
⠀⠀async for item in get_data():
⠀⠀⠀⠀print(item)
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥5🔥3👾2
Создание и управление задачами в "asyncio" [Часть 4]
❤️ В асинхронном программировании под задачами понимаются запущенные корутины, которые управляются event loop. С помощью
🚀 Чтобы запустить корутину как задачу, используйте
➡️ Управление задачами дает вам возможность отменять их, устанавливать таймауты и обрабатывать исключения, что приносит дополнительную гибкость в асинхронное программирование.
❤️🔥 Создание задач в
🔝 PyBytes Media | ✉️ Telegram / 📷 Instagram / 📈 Mentor Service
asyncio, можно не только запускать корутины, но и создавать задачи, которые позволяют более гибко управлять асинхронными операциями.
async def count():
⠀⠀print("One")
⠀⠀await asyncio.sleep(1)
⠀⠀print("Two")
asyncio.create_task(). Это позволит вашей программе продолжать выполнение, не дожидаясь окончания корутины.
async def main():
⠀⠀# Создание задачи
⠀⠀task = asyncio.create_task(count())
⠀⠀print("Counting...")
⠀⠀# Дождемся выполнения задачи
⠀⠀await task
async def main():
⠀⠀task = asyncio.create_task(count())
⠀⠀await asyncio.sleep(0.5)
⠀⠀task.cancel()
⠀⠀try:
⠀⠀⠀⠀await task
⠀⠀except asyncio.CancelledError:
⠀⠀⠀⠀print("Task was cancelled!")
asyncio открывает новые возможности для более эффективного и гибкого управления асинхронными операциями. В следующей части мы рассмотрим примеры реального использования asyncio и распространенные паттерны.Please open Telegram to view this post
VIEW IN TELEGRAM
❤4🔥4😈2
🚀🌐 Вакансия: User Acquisition Manager / Таргетолог
Привет 👋 Мы ищем опытного специалиста в сфере GameDev, который ранее работал с играми или геймерами.
Требования:
Важно: Вы ранее работали с играми из Steam, либо App Store и Google Play
➡️ Понимание рекламных кабинетов: Google, META, Unity, Twitter, Reddit (Знание дополнительных будет плюсом)
➡️ Запуск и ведение рекламных кампаний, анализ и оптимизация кампаний в реальном времени
➡️ Тестированием креативов, поиском трендов и новых идей, подготовкой ТЗ для моушен-дизайнеров
➡️ Организация тестов новых инструментов и фич на рекламных платформах
➡️ Умение пользоваться инструментами аналитики, умение работать с текстами
Контакты 👉 @spaceitnikita
Привет 👋 Мы ищем опытного специалиста в сфере GameDev, который ранее работал с играми или геймерами.
Требования:
Важно: Вы ранее работали с играми из Steam, либо App Store и Google Play
Контакты 👉 @spaceitnikita
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3❤🔥3🥰2
🚀🌐 ВАКАНСИЯ: Sales Manager
Мы ищем опытного Sales Manager, готового внести свой вклад в развитие компании и поиск новых клиентов! 🚀
Обязанности и задачи:
➡️ Продажа продуктов и услуг компании (поставка оборудования и ПО)
➡️ Анализ рынка, поиск потенциальных клиентов, выход на ЛПР
➡️ Проведение переговоров на уровне первых лиц компаний, выявление и формирование потребности
➡️ Выстраивание и развитие эффективных долгосрочных взаимоотношений с заказчиками
➡️ Организация полного цикла работы с клиентами: от первого контакта до реализации решения и контроля оплаты
➡️ Создание воронок продаж для поиска и привлечения клиентов
➡️ Тесное взаимодействие с различными отделами производства при оценке проекта и подготовке КП
➡️ Инициация проекта после продажи: управление ожиданиями клиента, дебрифинг команды, контроль подписания документов и оплат.
Требования к кандидату:
➡️ Успешный опыт продаж ИТ услуг, инфраструктурных решений, программного обеспечения в B2B, B2G сегменте от 3 лет
➡️ Опыт работы с веб-проектами, понимание современных веб-технологий
➡️ Опыт работы с крупными корпоративными и/или государственными заказчиками
➡️ Уверенные коммуникативные навыки, умение работать в команде, ориентация на результат
Ключевые навыки:
➡️ Навыки презентации
➡️ Деловая коммуникация
➡️ Управление проектами
➡️ Навыки переговоров
➡️ Ведение переговоров
➡️ Знание английского от B2
➡️ Подготовка КП
➡️ Навыки продаж
🤖 Контакты @lunasantrope
Мы ищем опытного Sales Manager, готового внести свой вклад в развитие компании и поиск новых клиентов! 🚀
Обязанности и задачи:
Требования к кандидату:
Ключевые навыки:
Please open Telegram to view this post
VIEW IN TELEGRAM
❤4🔥2
Дескрипторы в Python [Часть 1]
➡️ Дескрипторы - мощный инструмент в Python, позволяющий программистам контролировать доступ к атрибутам объекта. Этот механизм широко используется в стандартной библиотеке Python, и понимание его принципов откроет перед вами новые возможности для эффективного и гибкого кодирования.
💡 Важность дескрипторов заключается в том, что они дают нам прямой контроль над тем, что происходит, когда атрибут объекта читается, записывается или удаляется. Это достигается за счет реализации специальных методов в классе дескриптора: get, set и delete.
🔍 Пример базового использования дескриптора для чтения атрибута:
🎓 Дескрипторы находят широкое применение в Python. Например, декоратор property - это на самом деле дескриптор, который мы в дальнейшем попробуем воссоздать, чтобы лучше понять его работу и возможности.
❤️🔥 В следующих постах мы рассмотрим, как создать свой дескриптор с методами get и set, обсудим продвинутые техники их использования и приведем практические примеры, которые помогут вам интегрировать дескрипторы в свои проекты.
🔝 PyBytes Media | ✉️ Telegram / 📷 Instagram / 📈 Mentor Service
class Descriptor:
⠀⠀def __get__(self, instance, owner):
⠀⠀⠀⠀return 'значение'
class MyClass:
⠀⠀descriptor = Descriptor()
obj = MyClass()
print(obj.descriptor) # Выведет: значение
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥7❤2😈2👍1
🚀🌐 ВАКАНСИЯ: Human Resources (HR)
Мы ищем опытного HR, готового внести свой вклад в развитие компании и поиск новых работников! 🚀
Оклад: 1000-2000$ в месяц💲
Обязанности и задачи:
➡️ Наём новых сотрудников в компанию.
➡️ Создание кадрового резерва.
➡️ Организация стажировок и адаптация новых кадров.
➡️ Мониторинг и анализ рынка труда.
➡️ Создание системы мотивации. (штрафы/вознаграждения)
➡️ Устранение эмоциональных проблем внутри коллектива.
➡️ Контроль за уровнем знаний работников.
➡️ Организация обучения сотрудников.
➡️ Координирование работы по повышению квалификации.
➡️ Составление трудовых договоров и ведение личных дел сотрудников, выявление КПД.
➡️ Проведение кадровых перестановок.
➡️ Подготовка предложений по распределению бюджетных средств на решение вопросов, связанных с отделом кадров.
Требования к кандидату:
➡️ Понимание ИТ услуг, инфраструктурных решений, программного обеспечения в B2B, B2G сегменте от 3 лет
➡️ Опыт работы с веб-проектами, понимание современных веб-технологий
➡️ Опыт работы с крупными корпоративными и/или государственными заказчиками
➡️ Уверенные коммуникативные навыки, умение работать в команде, ориентация на результат
Ключевые навыки:
➡️ Организация командной работы
➡️ Стрессоустойчивость
➡️ Разработка системы премирования и штрафов
➡️ Навыки презентации
➡️ Деловая коммуникация
➡️ Навыки переговоров
➡️ Знание английского от B2
🤖 Контакты @lunasantrope
Мы ищем опытного HR, готового внести свой вклад в развитие компании и поиск новых работников! 🚀
Оклад: 1000-2000$ в месяц
Обязанности и задачи:
Требования к кандидату:
Ключевые навыки:
Please open Telegram to view this post
VIEW IN TELEGRAM
❤4🤩2🏆1
Дескрипторы в Python [Часть 2]
😆 Реализация простого дескриптора начинается с понимания методов get и set. Эти методы позволяют контролировать доступ к атрибуту класса.
💡 В примере ниже мы создаем дескриптор для управления атрибутом, который должен быть всегда положительным:
🛠 Теперь, если мы попробуем присвоить отрицательное значение атрибуту
➡️ Использование дескрипторов таким образом позволяет вам точно контролировать значения атрибутов, обеспечивая их корректность и предотвращая неправильное использование.
🔝 PyBytes Media | ✉️ Telegram / 📷 Instagram / 📈 Mentor Service
class PositiveNumber:
⠀⠀def __init__(self):
⠀⠀⠀⠀self.value = 0
⠀⠀
⠀⠀def __get__(self, instance, owner):
⠀⠀⠀⠀return self.value
⠀⠀
⠀⠀def __set__(self, instance, value):
⠀⠀⠀⠀if value < 0:
⠀⠀⠀⠀⠀⠀raise ValueError("Значение должно быть положительным")
⠀⠀⠀⠀self.value = value
⠀⠀
class MyClass:
⠀⠀number = PositiveNumber()
number, Python выбросит исключение:
my_instance = MyClass()
my_instance.number = -5 # Выбросит ValueError
Please open Telegram to view this post
VIEW IN TELEGRAM
❤4❤🔥2😈2
Дескрипторы в Python [Часть 3]
🛠 Теперь давайте рассмотрим более продвинутые возможности дескрипторов: методы delete и set_name. Эти методы позволяют управлять удалением атрибутов и автоматическим именованием.
➡️ Метод delete позволяет нам определить, что происходит при удалении атрибута. В отличие от get и set, его использование менее распространено, но он может быть полезен для управления ресурсами или валидации.
📌 Метод set_name вызывается автоматически, когда дескриптор присваивается атрибуту класса. Это позволяет дескриптору знать свое имя в классе, что может быть полезно для сообщений об ошибках или логирования.
👀 Использование этих методов улучшает гибкость и контроль над поведением атрибутов, обеспечивая более строгую инкапсуляцию и логику ваших классов.
🔝 PyBytes Media | ✉️ Telegram / 📷 Instagram / 📈 Mentor Service
class ProtectedAttribute:
⠀⠀def __init__(self):
⠀⠀⠀⠀self.value = None
⠀⠀
⠀⠀def __delete__(self, instance):
⠀⠀⠀⠀raise AttributeError("Удаление атрибута запрещено")
class NamedAttribute:
⠀⠀def __set_name__(self, owner, name):
⠀⠀⠀⠀self.name = name
⠀⠀
⠀⠀def __set__(self, instance, value):
⠀⠀⠀⠀print(f"Устанавливаем {self.name}")
⠀⠀⠀⠀instance.__dict__[self.name] = value
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥3💋2
QUIZ: Что выведет данный код?
r = True, True, True == (True, True, True)
print(r)
r = True, True, True == (True, True, True)
print(r)
Anonymous Quiz
39%
True
14%
True, True, False
19%
False
28%
True, True, True
🌭5❤2😈2😐1
Использование "/" и "*" в определениях функций в Python
🧐 Если вы когда-либо заглядывали в исходный код пакетов, возможно, вы видели функции, использующие в своем синтаксисе / или *. Эти символы служат для разграничения аргументов функций на позиционные и ключевые.
💡 Символ / используется для обозначения того, что все аргументы, расположенные до него, являются исключительно позиционными. Это значит, что они не могут быть переданы как ключевые аргументы. После символа / аргументы могут быть переданы как позиционные, так и ключевые.
💫 Позиционные аргументы упрощают понимание порядка значений, особенно в больших и сложных функциях.
🫡 Символ * указывает, что аргументы после него должны быть переданы как ключевые. Это помогает предотвратить ошибки при их вызове, требуя явного указания имени параметра.
🎓 Объединяя / и *, можно создать функции с четко разделенными позиционными и ключевыми аргументами, повышая таким образом читаемость и устойчивость кода к ошибкам.
🚀 Использование / и * в определениях функций повышает читаемость и ясность кода, особенно в командной разработке. Применяйте их, чтобы сделать интерфейс ваших функций более понятным и защищенным от неправильного использования.
🔝 PyBytes Media | ✉️ Telegram / 📷 Instagram / 📈 Mentor Service
def func(a, b, /, c, d):
⠀⠀print(a, b, c, d)
⠀⠀
func(1, 2, c=3, d=4) # Работает
func(a=1, b=2, c=3, d=4) # Ошибка!
def func(a, b, *, c, d):
⠀⠀print(a, b, c, d)
⠀⠀
func(1, 2, c=3, d=4) # Работает
func(1, 2, 3, 4) # Ошибка!
def func(a, b, /, c, *, d):
⠀⠀print(a, b, c, d)
⠀⠀
func(1, 2, c=3, d=4) # Работает
func(a=1, b=2, 3, d=4) # Ошибка!
func(1, 2, 3, 4) # Ошибка!
Please open Telegram to view this post
VIEW IN TELEGRAM
👀7❤🔥4❤2🤨2👍1
Дескрипторы в Python [Часть 4]
🔍 В предыдущих частях мы коснулись параметров
👥 Параметр
📈 Параметр
⚠️ Особый случай с методом set: если вы пытаетесь назначить значение дескриптору напрямую через класс, а не через его экземпляр, метод set не будет вызван. Это связано с тем, что в таком случае вы фактически перезаписываете сам дескриптор в классе, а не взаимодействуете с его методом set.
💥 Это важный момент для понимания того, как Python работает с дескрипторами и какие действия могут "обойти" логику, заданную в дескрипторе.
🔝 PyBytes Media | ✉️ Telegram / 📷 Instagram / 📈 Mentor Service
instance и owner в методах дескриптора, а также особенности вызова метода set. Поговорим о них подробнее.instance ссылается на экземпляр класса, через который происходит обращение к атрибуту. Если обращение идет напрямую через класс, а не через экземпляр, instance будет None. Это позволяет дескриптору адаптировать свое поведение в зависимости от того, как именно к нему обращаются.
class Descriptor:
⠀⠀def __get__(self, instance, owner):
⠀⠀⠀⠀if instance is None:
⠀⠀⠀⠀⠀⠀return 'обращение через класс'
⠀⠀⠀⠀return 'обращение через экземпляр'
owner — это сам класс, к которому прикреплен дескриптор. Это позволяет дескриптору иметь информацию о классе, даже если доступ к атрибуту осуществляется через экземпляр.
class MyClass:
⠀⠀descriptor = Descriptor()
⠀⠀
MyClass.descriptor = 'новое значение' # __set__ не вызывается
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥4👍3🗿1
Дескрипторы в Python [Заключительная часть]
🔤 В этом финальном посте мы создадим
🔍 Важные аспекты нашего
- __init__: принимает функции для получения и установки значения, аналогично
- __get__: возвращает значение, используя функцию получения, если дескриптор обращается через экземпляр.
- __set__: устанавливает значение с помощью функции установки, предоставляя дополнительную логику валидации или трансформации.
Минимальный пример:
Это упрощенное представление того, как мы хотим контролировать доступ к атрибуту
📌 Детальная реализация и объяснения будут представлены в прикрепленном изображении.
👀 Создание подобных инструментов не только улучшает понимание внутренних механизмов Python, но и расширяет возможности по контролю и управлению состоянием объектов.
🔝 PyBytes Media | ✉️ Telegram / 📷 Instagram / 📈 Mentor Service
PropertyDescriptor, аналог стандартной функции property, для глубокого понимания дескрипторов.PropertyDescriptor:- __init__: принимает функции для получения и установки значения, аналогично
property.- __get__: возвращает значение, используя функцию получения, если дескриптор обращается через экземпляр.
- __set__: устанавливает значение с помощью функции установки, предоставляя дополнительную логику валидации или трансформации.
Минимальный пример:
class MyClass:
⠀⠀my_attr = PropertyDescriptor(get_my_attr, set_my_attr)
Это упрощенное представление того, как мы хотим контролировать доступ к атрибуту
my_attr.Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥3❤3🍾2
🚀🌐 ВАКАНСИЯ: Human Resources (HR)
Мы ищем опытного HR, готового внести свой вклад в развитие компании и поиск новых клиентов! 🚀
Оклад: 1000-2000$ в месяц💲
Обязанности и задачи:
➡️ Наём новых сотрудников в компанию.
➡️ Создание кадрового резерва.
➡️ Организация стажировок и адаптация новых кадров.
➡️ Мониторинг и анализ рынка труда.
➡️ Создание системы мотивации. (штрафы/вознаграждения)
➡️ Устранение эмоциональных проблем внутри коллектива.
➡️ Контроль за уровнем знаний работников.
➡️ Организация обучения сотрудников.
➡️ Координирование работы по повышению квалификации.
➡️ Составление трудовых договоров и ведение личных дел сотрудников, выявление КПД.
➡️ Проведение кадровых перестановок.
➡️ Подготовка предложений по распределению бюджетных средств на решение вопросов, связанных с отделом кадров.
Требования к кандидату:
➡️ Понимание ИТ услуг, инфраструктурных решений, программного обеспечения в B2B, B2G сегменте от 3 лет
➡️ Опыт работы с веб-проектами, понимание современных веб-технологий
➡️ Опыт работы с крупными корпоративными и/или государственными заказчиками
➡️ Уверенные коммуникативные навыки, умение работать в команде, ориентация на результат
Ключевые навыки:
➡️ Организация командной работы
➡️ Стрессоустойчивость
➡️ Разработка системы премирования и штрафов
➡️ Навыки презентации
➡️ Деловая коммуникация
➡️ Навыки переговоров
➡️ Знание английского от B2
🤖 Контакты @lunasantrope
Мы ищем опытного HR, готового внести свой вклад в развитие компании и поиск новых клиентов! 🚀
Оклад: 1000-2000$ в месяц
Обязанности и задачи:
Требования к кандидату:
Ключевые навыки:
Please open Telegram to view this post
VIEW IN TELEGRAM
❤4🔥1🏆1
Обработка исключений в Python [Часть 1]
💥 Обработка исключений - ключевой элемент написания надёжного кода на Python. Она позволяет вашей программе адекватно реагировать на ошибки и продолжать работу, не прерываясь при первом же сбое. Это особенно важно в больших проектах и системах, где стабильность - приоритет.
🛠 Простейший пример обработки исключения включает в себя блоки try и except:
💡 В блоке try помещается код, который может породить исключение, а в блоке except - код, который должен выполниться, если в блоке try произошла ошибка. Это позволяет программе элегантно обрабатывать потенциальные ошибки.
🔤 Важно понимать, что исключения - это не всегда "ошибки" в обычном понимании. Это могут быть ситуации, когда программа должна изменить своё поведение или предупредить пользователя, например, о неверно введённых данных.
🔝 PyBytes Media | ✉️ Telegram / 📷 Instagram / 📈 Mentor Service
try:
⠀⠀print("Попробуем это выполнить")
⠀⠀# Код, который может вызвать исключение
⠀⠀
except Exception as e:
⠀⠀print(f"Произошла ошибка: {e}")
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥3👀2