ITDEAL
1.11K subscribers
749 photos
108 videos
11 files
572 links
Разработка комплексных IT решений для бизнеса и частных заказчиков.

Чат: @pybytes_chat

Founder: @lunasantrope
Download Telegram
Дескрипторы в Python [Заключительная часть]

🔤 В этом финальном посте мы создадим PropertyDescriptor, аналог стандартной функции property, для глубокого понимания дескрипторов.

🔍 Важные аспекты нашего PropertyDescriptor:

- __init__: принимает функции для получения и установки значения, аналогично property.
- __get__: возвращает значение, используя функцию получения, если дескриптор обращается через экземпляр.
- __set__: устанавливает значение с помощью функции установки, предоставляя дополнительную логику валидации или трансформации.

Минимальный пример:


class MyClass:
⠀⠀my_attr = PropertyDescriptor(get_my_attr, set_my_attr)


Это упрощенное представление того, как мы хотим контролировать доступ к атрибуту my_attr.

📌 Детальная реализация и объяснения будут представлены в прикрепленном изображении.

👀 Создание подобных инструментов не только улучшает понимание внутренних механизмов Python, но и расширяет возможности по контролю и управлению состоянием объектов.

🔝 PyBytes Media | ✉️ Telegram / 📷 Instagram / 📈Mentor Service
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥33🍾2
🚀🌐 ВАКАНСИЯ: Human Resources (HR)

Мы ищем опытного HR, готового внести свой вклад в развитие компании и поиск новых клиентов! 🚀
Оклад: 1000-2000$ в месяц 💲


Обязанности и задачи:

➡️ Наём новых сотрудников в компанию.
➡️ Создание кадрового резерва.
➡️ Организация стажировок и адаптация новых кадров.
➡️ Мониторинг и анализ рынка труда.
➡️ Создание системы мотивации. (штрафы/вознаграждения)
➡️ Устранение эмоциональных проблем внутри коллектива.
➡️ Контроль за уровнем знаний работников.
➡️ Организация обучения сотрудников.
➡️ Координирование работы по повышению квалификации.
➡️ Составление трудовых договоров и ведение личных дел сотрудников, выявление КПД.
➡️ Проведение кадровых перестановок.
➡️ Подготовка предложений по распределению бюджетных средств на решение вопросов, связанных с отделом кадров.


Требования к кандидату:

➡️ Понимание ИТ услуг, инфраструктурных решений, программного обеспечения в B2B, B2G сегменте от 3 лет
➡️ Опыт работы с веб-проектами, понимание современных веб-технологий
➡️ Опыт работы с крупными корпоративными и/или государственными заказчиками
➡️ Уверенные коммуникативные навыки, умение работать в команде, ориентация на результат


Ключевые навыки:

➡️ Организация командной работы
➡️ Стрессоустойчивость
➡️ Разработка системы премирования и штрафов
➡️ Навыки презентации
➡️ Деловая коммуникация
➡️ Навыки переговоров
➡️ Знание английского от B2


🤖 Контакты @lunasantrope
Please open Telegram to view this post
VIEW IN TELEGRAM
4🔥1🏆1
Обработка исключений в Python [Часть 1]

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

🛠 Простейший пример обработки исключения включает в себя блоки try и except:


try:
⠀⠀print("Попробуем это выполнить")
⠀⠀# Код, который может вызвать исключение
⠀⠀
except Exception as e:
⠀⠀print(f"Произошла ошибка: {e}")


💡 В блоке try помещается код, который может породить исключение, а в блоке except - код, который должен выполниться, если в блоке try произошла ошибка. Это позволяет программе элегантно обрабатывать потенциальные ошибки.

🔤 Важно понимать, что исключения - это не всегда "ошибки" в обычном понимании. Это могут быть ситуации, когда программа должна изменить своё поведение или предупредить пользователя, например, о неверно введённых данных.

🔝 PyBytes Media | ✉️ Telegram / 📷 Instagram / 📈Mentor Service
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥3👀2
Ого, это что, новый обзор???
7🔥2😨2
Обработка исключений в Python [Часть 3]

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


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)


❤️‍🔥 Определение собственных классов исключений позволяет более точно указать, какие ошибки могут возникнуть в вашем коде, и как их следует обрабатывать, делая ваш код более интуитивно понятным для других разработчиков.

🔝 PyBytes Media | ✉️ Telegram / 📷 Instagram / 📈Mentor Service
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) - это подход, при котором перед выполнением операции вы проверяете все возможные проблемы. Например, прежде чем читать файл, вы проверяете, существует ли он:


import os
if os.path.exists("file.txt"):
⠀⠀with open("file.txt") as file:
⠀⠀⠀⠀data = file.read()


📌 EAFP (Easier to Ask for Forgiveness than Permission) - подход, согласно которому вы выполняете операцию напрямую, ожидая, что она может не сработать, и затем обрабатываете возможные исключения:


try:
⠀⠀with open("file.txt") as file:
⠀⠀⠀⠀data = file.read()
except FileNotFoundError:
⠀⠀print("Файл не найден")


💬 В Python часто предпочитают EAFP из-за его соответствия духу языка и способности эффективно обрабатывать неожиданные ситуации без предварительной проверки всех условий.

🔍 Оба подхода имеют свои места и могут использоваться в зависимости от ситуации и предпочтений программиста. В следующем посте мы рассмотрим, когда и почему стоит использовать каждый из них.

🔝 PyBytes Media | ✉️ Telegram / 📷 Instagram / 📈Mentor Service
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥73💊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 подход
if key in some_dict:
⠀⠀result = some_dict[key]
else:
⠀⠀result = "Значение не найдено"
⠀⠀
# EAFP подход
try:
⠀⠀result = some_dict[key]
except KeyError:
⠀⠀result = "Значение не найдено"


📊 Выбор между LBYL и EAFP зависит от многих факторов, включая читаемость кода, вероятность возникновения исключений и оверхед на проверки. В целом, EAFP может быть более подходящим в Python из-за его способности эффективно обрабатывать исключения и поддерживать чистоту кода.

🔝 В заключение, выбор между LBYL и EAFP должен основываться на вашем контексте и требованиях к программе. Python дает вам гибкость выбора, позволяя писать эффективный и легко читаемый код.

🔝 PyBytes Media | ✉️ Telegram / 📷 Instagram / 📈Mentor Service
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥33🍾2
Разбавить контент канала IT новостями?
Anonymous Poll
52%
Да, слишком много учебы
48%
Нет, только знания
This media is not supported in your browser
VIEW IN TELEGRAM
💡 Думаю мало кто знает, но я как настоящий IT-шник решил попробовать поездить по миру и поискать местечко для постоянной жизни себе

Показывать вам места где я бываю? Интересно видеть немного оффлайн-жизни?

🔥 - Да
❤️ - Да
👍🏽 - Да
🔥418👍4❤‍🔥2
Comprehensions в Python [Часть 1]

🚀 Comprehensions в Python - это синтаксическая конструкция, предназначенная для создания новых коллекций на основе уже существующих. Используются для упрощения кода и повышения его читаемости.

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


# Список квадратов чисел
squares = [x**2 for x in range(10)]



💡 Главное преимущество comprehensions заключается в их краткости и выразительности по сравнению с традиционными циклами for. Вместо нескольких строк кода с циклами и условиями можно написать однострочное выражение.

Пример традиционного подхода:


squares = []
for x in range(10):
⠀⠀squares.append(x**2)


🔤 Использование comprehensions не только упрощает написание кода, но и способствует его лучшему восприятию другими разработчиками, что особенно важно в командной работе.

🔝 PyBytes Media | ✉️ Telegram / 📷 Instagram / 📈Mentor Service
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
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2🤩1
This media is not supported in your browser
VIEW IN TELEGRAM
Смотрите какие кадры получаются с дрона 🤩
❤‍🔥73
Китай ищет замену чипам 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
Сделаем стрим? Поговорим о последних новостях и напишем проект? 😉
❤‍🔥10🔥32👍2
📌 Стрим: CLICK
3🤷2🏆1
Name mangling в Python [Часть 1]

🚀 Name mangling, или искажение имен, - это механизм в Python, который предназначен для ограничения области видимости переменных внутри класса. Это позволяет избегать конфликтов имен между переменными базового и производного классов. Но почему это важно?

🔍 Представьте ситуацию, когда вы создаете класс-наследник и случайно переопределяете внутреннюю переменную базового класса. Без механизма name mangling это может привести к неожиданным ошибкам и поведению программы. Name mangling автоматически преобразует имя переменной, делая его уникальным для каждого класса.


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)


💡 Важно понимать, что name mangling не делает переменную полностью приватной, как в некоторых других языках программирования. Он просто изменяет имя переменной таким образом, что доступ к ней становится менее интуитивным.

😱 Использование двойного подчеркивания перед именем переменной (`__имя`) автоматически активирует механизм name mangling, что делает его простым и эффективным способом для создания "защищенных" переменных в классах.

😮‍💨 Name mangling - это мощный инструмент в арсенале разработчика Python, который помогает обеспечить корректное наследование и избегать потенциальных конфликтов имен. В следующем посте мы рассмотрим конкретные примеры и особенности его использования.

🔝 PyBytes Media | ✉️ Telegram / 📷 Instagram / 📈Mentor Service
Please open Telegram to view this post
VIEW IN TELEGRAM
4❤‍🔥3👍3
🌟Вы точно этого не знали, но у СССР был свой домен.

И это — .su

Вот так вот 😬

🔝 PyBytes Media | ✉️ Telegram / 📷 Instagram / 📈Mentor Service
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
Please open Telegram to view this post
VIEW IN TELEGRAM
🥰2😱2💯1🏆1
This media is not supported in your browser
VIEW IN TELEGRAM
🔥8🤩4