Обработка исключений в Python [Часть 3]
🥰 Обработка множества исключений в Python позволяет вашему коду быть готовым к различным сценариям ошибок. Python предлагает гибкость в этом, позволяя указывать несколько типов исключений, которые должны быть обработаны.
🎓 Создание собственных исключений - это еще один уровень управления ошибками. Это позволяет вам создавать специфические типы ошибок для вашего приложения, что делает код более читаемым и легко отлаживаемым.
❤️🔥 Определение собственных классов исключений позволяет более точно указать, какие ошибки могут возникнуть в вашем коде, и как их следует обрабатывать, делая ваш код более интуитивно понятным для других разработчиков.
🔝 PyBytes Media | ✉️ Telegram / 📷 Instagram / 📈 Mentor Service
try:
⠀⠀# Код, который может вызвать разные исключения
except (TypeError, ValueError) as e:
⠀⠀print(f"Произошла ошибка: {e}")
⠀⠀
except Exception as e:
⠀⠀print(f"Неизвестная ошибка: {e}")
class MyCustomError(Exception):
⠀⠀def __init__(self, message="Моя ошибка"):
⠀⠀⠀⠀self.message = message
⠀⠀⠀⠀super().__init__(self.message)
⠀⠀
try:
⠀⠀raise MyCustomError("Что-то пошло не так")
⠀⠀
except MyCustomError as e:
⠀⠀print(e)
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥5🍓3👍1
LBYL vs EAFP в Python [Часть 1]
🔤 В мире Python существуют две философии программирования при работе с возможными ошибками: LBYL (Look Before You Leap) и EAFP (Easier to Ask for Forgiveness than Permission). Эти подходы крайне важны для понимания и правильного использования обработки исключений.
📌 LBYL (Look Before You Leap) - это подход, при котором перед выполнением операции вы проверяете все возможные проблемы. Например, прежде чем читать файл, вы проверяете, существует ли он:
📌 EAFP (Easier to Ask for Forgiveness than Permission) - подход, согласно которому вы выполняете операцию напрямую, ожидая, что она может не сработать, и затем обрабатываете возможные исключения:
💬 В Python часто предпочитают EAFP из-за его соответствия духу языка и способности эффективно обрабатывать неожиданные ситуации без предварительной проверки всех условий.
🔍 Оба подхода имеют свои места и могут использоваться в зависимости от ситуации и предпочтений программиста. В следующем посте мы рассмотрим, когда и почему стоит использовать каждый из них.
🔝 PyBytes Media | ✉️ Telegram / 📷 Instagram / 📈 Mentor Service
import os
if os.path.exists("file.txt"):
⠀⠀with open("file.txt") as file:
⠀⠀⠀⠀data = file.read()
try:
⠀⠀with open("file.txt") as file:
⠀⠀⠀⠀data = file.read()
except FileNotFoundError:
⠀⠀print("Файл не найден")
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥7❤3💊3
LBYL vs EAFP в Python [Часть 2]
🤔 Когда использовать LBYL и EAFP? В Python оба подхода имеют своё место, но важно понимать, когда каждый из них является наилучшим выбором.
🛡 LBYL (Look Before You Leap) обычно используется в средах, где состояния изменяются редко или когда проверки не требуют значительных ресурсов. Этот подход может сделать код более читаемым для тех, кто привык к традиционному программированию. Однако, в многопоточных средах LBYL может привести к гонкам за состояние, поскольку состояние может измениться между проверкой и выполнением.
🔤 EAFP (Easier to Ask for Forgiveness than Permission) рекомендуется в Python, особенно в многопоточных и сетевых приложениях, где состояние может измениться в любой момент. Этот подход также считается более "pythonic", поскольку часто приводит к более чистому и эффективному коду.
📊 Выбор между LBYL и EAFP зависит от многих факторов, включая читаемость кода, вероятность возникновения исключений и оверхед на проверки. В целом, EAFP может быть более подходящим в Python из-за его способности эффективно обрабатывать исключения и поддерживать чистоту кода.
🔝 В заключение, выбор между LBYL и EAFP должен основываться на вашем контексте и требованиях к программе. Python дает вам гибкость выбора, позволяя писать эффективный и легко читаемый код.
🔝 PyBytes Media | ✉️ Telegram / 📷 Instagram / 📈 Mentor Service
# LBYL подход
if key in some_dict:
⠀⠀result = some_dict[key]
else:
⠀⠀result = "Значение не найдено"
⠀⠀
# EAFP подход
try:
⠀⠀result = some_dict[key]
except KeyError:
⠀⠀result = "Значение не найдено"
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥3❤3🍾2
Разбавить контент канала IT новостями?
Anonymous Poll
52%
Да, слишком много учебы
48%
Нет, только знания
This media is not supported in your browser
VIEW IN TELEGRAM
💡 Думаю мало кто знает, но я как настоящий IT-шник решил попробовать поездить по миру и поискать местечко для постоянной жизни себе
Показывать вам места где я бываю? Интересно видеть немного оффлайн-жизни?
🔥 - Да
❤️ - Да
👍🏽 - Да
Показывать вам места где я бываю? Интересно видеть немного оффлайн-жизни?
🔥 - Да
❤️ - Да
👍🏽 - Да
🔥41❤8👍4❤🔥2
Comprehensions в Python [Часть 1]
🚀 Comprehensions в Python - это синтаксическая конструкция, предназначенная для создания новых коллекций на основе уже существующих. Используются для упрощения кода и повышения его читаемости.
Примеры использования:
💡 Главное преимущество comprehensions заключается в их краткости и выразительности по сравнению с традиционными циклами for. Вместо нескольких строк кода с циклами и условиями можно написать однострочное выражение.
Пример традиционного подхода:
🔤 Использование comprehensions не только упрощает написание кода, но и способствует его лучшему восприятию другими разработчиками, что особенно важно в командной работе.
🔝 PyBytes Media | ✉️ Telegram / 📷 Instagram / 📈 Mentor Service
Примеры использования:
# Список квадратов чисел
squares = [x**2 for x in range(10)]
Пример традиционного подхода:
squares = []
for x in range(10):
⠀⠀squares.append(x**2)
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥3😈2🤝1
Forwarded from ITDEAL
🚀🌐 ВАКАНСИЯ: Human Resources (HR)
Мы ищем опытного HR, готового внести свой вклад в развитие компании и поиск новых клиентов! 🚀
Оклад: 1000-2000$ в месяц💲
Обязанности и задачи:
➡️ Наём новых сотрудников в компанию.
➡️ Создание кадрового резерва.
➡️ Организация стажировок и адаптация новых кадров.
➡️ Мониторинг и анализ рынка труда.
➡️ Создание системы мотивации. (штрафы/вознаграждения)
➡️ Устранение эмоциональных проблем внутри коллектива.
➡️ Контроль за уровнем знаний работников.
➡️ Организация обучения сотрудников.
➡️ Координирование работы по повышению квалификации.
➡️ Составление трудовых договоров и ведение личных дел сотрудников, выявление КПД.
➡️ Проведение кадровых перестановок.
➡️ Подготовка предложений по распределению бюджетных средств на решение вопросов, связанных с отделом кадров.
Требования к кандидату:
➡️ Понимание ИТ услуг, инфраструктурных решений, программного обеспечения в B2B, B2G сегменте от 3 лет
➡️ Опыт работы с веб-проектами, понимание современных веб-технологий
➡️ Опыт работы с крупными корпоративными и/или государственными заказчиками
➡️ Уверенные коммуникативные навыки, умение работать в команде, ориентация на результат
Ключевые навыки:
➡️ Организация командной работы
➡️ Стрессоустойчивость
➡️ Разработка системы премирования и штрафов
➡️ Навыки презентации
➡️ Деловая коммуникация
➡️ Навыки переговоров
➡️ Знание английского от B2
🤖 Контакты @lunasantrope
Мы ищем опытного HR, готового внести свой вклад в развитие компании и поиск новых клиентов! 🚀
Оклад: 1000-2000$ в месяц
Обязанности и задачи:
Требования к кандидату:
Ключевые навыки:
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2🤩1
This media is not supported in your browser
VIEW IN TELEGRAM
Смотрите какие кадры получаются с дрона 🤩
❤🔥7❤3
Китай ищет замену чипам Intel и AMD
🔤 В Китае объявили о планах постепенного отказа от использования процессоров Intel и AMD в госструктурах, в рамках стратегии импортозамещения. Предпочтение отдаётся отечественным разработкам, таким как чипы от Huawei и Phytim, с уже одобренными 18 альтернативами.
📌 Стратегия, направленная на полную замену иностранного оборудования и ПО на местное, должна быть реализована к 2027 году, что потребует от КНР инвестиций почти в $100 млрд только на начальном этапе.
🔨 Подробнее: КЛИК
🔝 PyBytes Media / ✉️ Telegram / 📷 Instagram / 📈 Mentor Service
Please open Telegram to view this post
VIEW IN TELEGRAM
❤5❤🔥2🤔2
Name mangling в Python [Часть 1]
🚀 Name mangling, или искажение имен, - это механизм в Python, который предназначен для ограничения области видимости переменных внутри класса. Это позволяет избегать конфликтов имен между переменными базового и производного классов. Но почему это важно?
🔍 Представьте ситуацию, когда вы создаете класс-наследник и случайно переопределяете внутреннюю переменную базового класса. Без механизма name mangling это может привести к неожиданным ошибкам и поведению программы. Name mangling автоматически преобразует имя переменной, делая его уникальным для каждого класса.
💡 Важно понимать, что name mangling не делает переменную полностью приватной, как в некоторых других языках программирования. Он просто изменяет имя переменной таким образом, что доступ к ней становится менее интуитивным.
😱 Использование двойного подчеркивания перед именем переменной (`__имя`) автоматически активирует механизм name mangling, что делает его простым и эффективным способом для создания "защищенных" переменных в классах.
😮💨 Name mangling - это мощный инструмент в арсенале разработчика Python, который помогает обеспечить корректное наследование и избегать потенциальных конфликтов имен. В следующем посте мы рассмотрим конкретные примеры и особенности его использования.
🔝 PyBytes Media | ✉️ Telegram / 📷 Instagram / 📈 Mentor Service
class Parent:
⠀⠀def __init__(self):
⠀⠀⠀⠀self.__private_var = "I'm private!"
⠀⠀
class Child(Parent):
⠀⠀def __init__(self):
⠀⠀⠀⠀super().__init__()
⠀⠀⠀⠀self.__private_var = "Overridden!"
⠀⠀
p = Parent()
c = Child()
⠀⠀
# Попытка доступа к __private_var приведет к ошибке
# print(p.__private_var)
# print(c.__private_var)
Please open Telegram to view this post
VIEW IN TELEGRAM
✍4❤🔥3👍3
И это — .su
Вот так вот
Please open Telegram to view this post
VIEW IN TELEGRAM
❤4🤷♂2🍓2🌭1
🚀🌐 ВАКАНСИЯ: Project Manager (PM)
💼 Оклад: от 1000$ / месяц
Обязанности и задачи:
➡️ Ведение документации по проектам команды
➡️ Умение объяснять и доносить до команды структуру проекта
➡️ Умение создавать блок-схемы для проектов
➡️ Ведение переговоров с клиентами компании
➡️ Ведение JIRA для разработчиков и распределение задач
➡️ Создание недельной отчетности по готовности проектов
➡️ Проведение дэйли-митингов с командой для контроля задач
➡️ Выявление дополнительных функциональных требований
➡️ Грамотное распределение ресурсов команды по проектам
➡️ Слаженная работа в команде
➡️ Ведение графика загруженности разработчиков по проектам
Требования к кандидату:
➡️ Понимание IT услуг, инфраструктурных решений, программного обеспечения в B2B, B2G сегменте от 3 лет
➡️ Опыт работы с веб-проектами, понимание современных веб-технологий
➡️ Опыт работы с крупными корпоративными и/или государственными заказчиками (будет плюсом)
➡️ Уверенные коммуникативные навыки, умение работать в команде, ориентация на результат
➡️ Стремление к развитию компании и себя по карьерной лестнице
Ключевые навыки:
➡️ Организация командной работы
➡️ Стрессоустойчивость
➡️ Навыки презентации
➡️ Деловая коммуникация
➡️ Навыки переговоров
➡️ Знание английского от B2
🐱 Контакты: Артем
🔝 PyBytes Media | ✉️ Telegram / 📷 Instagram / 📈 Mentor Service
💼 Оклад: от 1000$ / месяц
Обязанности и задачи:
Требования к кандидату:
Ключевые навыки:
Please open Telegram to view this post
VIEW IN TELEGRAM
🥰2😱2💯1🏆1
Ловите какой-то интерактив от крипто-проектов)
Может кто то из вас гений и сможет разгадать шифр
Может кто то из вас гений и сможет разгадать шифр
Обнаружен скрытый доступ в XZ Utils - под угрозой Linux!
😱 В прошлую пятницу, разработчик Microsoft обнаружил, что в XZ Utils, необходимом инструменте сжатия данных для Linux-based систем, был заложен скрытый доступ. Это открытие могло стать одной из самых крупных угроз для цифровой безопасности, сравнимой с инцидентом SolarWinds 2020 года.
🔤 Благодаря внимательности разработчика Андреса Фройнда, который заметил необычную активность во время работы с SSH, удалось предотвратить потенциальную катастрофу. Бэкдор, предназначенный для манипуляции с SSH соединениями, мог бы позволить злоумышленникам удаленно выполнять код с root правами на уязвимых устройствах (количество таких, считалось бы миллионами).
😱 Дата обнаружения: последняя пятница. Анализ и реверс-инжиниринг скрытого механизма все еще продолжаются, чтобы полностью понять масштабы и потенциальную опасность угрозы.
🔍 Подробнее: КЛИК
🔝 PyBytes Media | ✉️ Telegram / 📷 Instagram / 📈 Mentor Service
Please open Telegram to view this post
VIEW IN TELEGRAM
❤5