Программистика
کانال بسته
Лучший канал про python Ссылка для друга: https://t.me/+Ai6ughKtf5g2ZmFi Купить рекламу: https://telega.in/c/+Ai6ughKtf5g2ZmFi Админ: @JeyRahol По рекламе: @ReivuManager
نمایش بیشتر5 762
مشترکین
-924 ساعت
-367 روز
-9130 روز
آرشیو پست ها
5 762
💻 Вопрос из собеседования: Зачем в python используется ключевое слово self?
В Python ключевое слово
self используется для обращения к текущему объекту класса. Оно передается как первый аргумент в методы класса и позволяет работать с атрибутами и методами объекта класса внутри этих методов.
👩💻К примеру, рассмотрим класс Person, который имеет атрибут name и метод say_hello:
class Person:
def __init__(self, name):
self.name = name
def say_hello(self):
print(f"Hello, my name is {self.name}")
👀Здесь мы можем обратиться к атрибуту name объекта класса Person с помощью ключевого слова self. Аналогично, мы можем вызвать метод say_hello, который также использует self для доступа к атрибуту name:
person = Person("Alice")
person.say_hello() # выведет "Hello, my name is Alice"
‼️Подводя итог, self позволяет нам работать с конкретным экземпляром класса (именно с "Alice" или "Bob"), с атрибутами и методами этого экземпляра, не трогая другие.
Надеюсь это поможет вам пройти собеседование на желаемую вами работу, удачи🔥@programistica // #jobs
5 762
❗️Наконец-то! в телеграме появился по настоящему крутой канал по Python!
Каждый день в канале выкладывают:
-Полезные советы и решения для разработки
-Обучающие материалы и уроки для всех уровней
-Свежие новости и обновления
-А так же сливы с лучших платных курсов
🔥 Не упустите возможность стать настоящим профессионалом! Быстрей залетай в Pythoner
5 762
🖥 Интеграция Python с другими языками программирования
Python является высокоуровневым языком программирования, который благодаря своей простоте и читабельности широко используется для разработки самых разных приложений. Однако в ряде случаев возникает необходимость интеграции Python с более низкоуровневыми языками программирования, такими как C и C++. Это может быть необходимо для оптимизации производительности, использования существующих библиотек или реализации критически важных для скорости компонентов. В этой статье я расскажу о двух популярных инструментах для интеграции Python с C/C++: Cython и Pybind11, а также дам советы по оптимизации производительности.
🗣Использование Cython
🗣Использование Pybind11
🗣Взаимодействие с библиотеками на C/C++
🗣Советы по оптимизации производительности
🔗 Читать полностью
@programistica // #article
5 762
5 762
💻 Вопрос из собеседования: Что такое контекстный менеджер?
➡️Контекстный менеджер в Python - это объект, который определяет вход и выход из контекста с помощью методов
enter() и exit().
👀Контекстный менеджер может быть использован в блоке with для выполнения конкретных действий при входе и выходе из блока. Например, контекстный менеджер может устанавливать и закрывать соединение с базой данных, блокировать и разблокировать файлы или временно изменять настройки системы.
👩💻Вот простой пример, демонстрирующий использование контекстного менеджера для работы с файлом:
with open('file.txt', 'r') as f:
data = f.read()
➡️В этом примере open() возвращает контекстный менеджер f. Когда блок with начинается, вызывается метод enter() контекстного менеджера, который открывает файл.
Затем выполняется код в блоке, который использует f для чтения данных из файла. При завершении блока with вызывается метод exit() контекстного менеджера, который закрывает файл.
‼️Контекстные менеджеры в Python используются для обращения с ресурсами, которые должны быть корректно открыты и закрыты, включая файлы, сетевые соединения, блокировки и базы данных. Кроме того, их можно использовать для временной модификации состояния системы или окружения в блоках with.
Надеюсь это поможет вам пройти собеседование на желаемую вами работу, удачи🔥@programistica // #jobs
5 762
👀 Книга: Алгоритмы с примерами на Python
⏺Решение задач
⏺Анализ алгоритмов
⏺Хороший хеш - залог успеха
⏺"Могучая куча"
⏺Сортировка без магии
⏺Двоичные деревья: бесконечность под рукой
⏺Графы: всегда на связи!
И многое другое
@programistica // #doc
5 762
Linux как секс!
Если зубрить его по книжкам, то кроме теории и деградации, ты ничему не научишься.
В канале BashDays ты найдешь лучшие Linux и Bash практики. Действующий девопс-инженер, самобытно и с долей юмора, травит темы:
- Рекавери файлов через grep
- Почему коты гадят в макбуки
- Как отключить логирование
- Неочевидные трюки на Bash
- Сниффер SSH на strace
И это только цветочки. А если заскучал, поиграй с друзьями в piu-piu и надери им бэкенд. Рекомендую!
В BashDays даже джуны становятся сеньорами.
Подписывайся, это самый простой способ прокачать свои хард-скиллы: — @bashdays
5 762
🖥Имеет ли смысл указывать slots при создании dataclass в python?
В комментариях под постом о атрибуте
slots, подписчик задал интересный вопрос:
а имеет ли смысл указывать slots при создании dataclass ?Так давайте же я вам сейчас расскажу об этом. Сразу скажу, что Да, использование slots при создании dataclass в Python может иметь смысл в определенных ситуациях. slots позволяет нам оптимизировать использование памяти и улучшить производительность, исключая динамическое создание атрибутов экземпляра и использование внутреннего словаря dict для хранения атрибутов. Преимущества использования slots с dataclass ⏺Снижение потребления памяти: Без slots каждый экземпляр класса имеет свой словарь (dict), который хранит все атрибуты экземпляра. Это добавляет накладные расходы на память. slots избавляется от необходимости использования этого словаря, что экономит память, особенно в случаях, когда создается много экземпляров класса. ⏺Ускорение доступа к атрибутам: Поскольку атрибуты экземпляра фиксированы, доступ к ним может быть быстрее, чем доступ к атрибутам через словарь. ⏺Предотвращение динамического добавления атрибутов: Использование slots предотвращает динамическое добавление новых атрибутов, что помогает предотвратить ошибки и улучшить читаемость и поддержку кода. 👩💻Вот пример, демонстрирующий, как можно использовать
slots с dataclass:
from dataclasses import dataclass
# Использование декоратора dataclass для автоматического создания методов __init__, __repr__, и других
@dataclass
class Point:
# __slots__ используется для ограничения атрибутов экземпляра и оптимизации использования памяти
__slots__ = ['x', 'y']
# Объявление атрибутов класса с их типами
x: int
y: int
# Пример использования класса Point
# Создание экземпляра класса Point с начальными значениями x=1 и y=2
point = Point(1, 2)
# Вывод значений атрибутов x и y экземпляра point
print(point.x, point.y
)
Когда не следуslotsзовать __slots__
Однако есть случаи, когда не стоит укslotsтрибут __slots__slotsass.
⏺__slots__ могут усложнить наследование. Если вы планируете использовать наследование, вам нужнslotsказать __slots__ в каждом подклассе.
⏺Вы не сможете добавлять атрибуты динамически, что иногда может быть полезно для отладки или для определенных паттернов проектирования.
Надеюсь я ответил на ваш вопрос, и вы удовлетворены! @programistica // #article
5 762
🖥 Библиотека Rich
Rich — это мощная библиотека для Python, которая позволяет легко и красиво выводить текст, таблицы, прогресс-бары, трассировки и другие элементы в консоль. Она поддерживает форматирование и стилизацию текста с использованием разметки, что делает консольный вывод более информативным и приятным для восприятия.
👩💻Пример кода, демонстрирующий работу библиотеки Rich:/
from rich.console import Console # Импортируем класс Console из библиотеки Rich для работы с консольным выводом
from rich.table import Table # Импортируем класс Table из библиотеки Rich для создания таблиц
console = Console() # Создаем объект Console для работы с консолью
# Создаем объект Table и задаем заголовок таблицы
table = Table(title="Пример таблицы с использованием Rich")
# Добавляем столбцы в таблицу
table.add_column("Имя", justify="right", style="cyan", no_wrap=True) # Первый столбец: Имя, выравнивание по правому краю, цвет cyan
table.add_column("Возраст", style="magenta") # Второй столбец: Возраст, цвет magenta
table.add_column("Город", justify="right", style="green") # Третий столбец: Город, выравнивание по правому краю, цвет green
# Добавляем строки в таблицу с данными
table.add_row("Алиса", "24", "Москва") # Первая строка: Алиса, 24, Москва
table.add_row("Боб", "30", "Санкт-Петербург") # Вторая строка: Боб, 30, Санкт-Петербург
table.add_row("Чарли", "22", "Новосибирск") # Третья строка: Чарли, 22, Новосибирск
# Выводим таблицу в консоль
console.print(table)
Этот код создает и выводит в консоль таблицу с форматированными данными.
@programistica // #Library5 762
💻 Вопрос из собеседования: Для чего в классе используется атрибут slots?
➡️Атрибут
__slots__ в классе Python используется для оптимизации памяти и ускорения работы с объектами класса. Он позволяет явно указать, какие атрибуты объекта будут использоваться, а какие нет.
👀Когда вы определяете класс, Python создает для каждого экземпляра этого класса словарь, который содержит все его атрибуты. Это может быть выгодным в том случае, если у вас много различных атрибутов, но может привести к большому расходу памяти, если вы создаете много экземпляров класса с небольшим количеством атрибутов.
👀Атрибут __slots__ позволяет определить, какие атрибуты должны быть на самом деле созданы для каждого экземпляра класса, и в какой момент их можно будет получить.
Если вы используете атрибут __slots__, Python уже не будет создавать словарь для каждого экземпляра класса, а будет использовать непосредственно массив атрибутов, что может ускорить работу программы и уменьшить использование памяти.
👩💻Например, если у вас есть класс Person с атрибутами name и age, вы можете определить __slots__ следующим образом:
class Person:
__slots__ = ['name', 'age']
def __init__(self, name, age):
self.name = name
self.age = age
‼️Таким образом, каждый экземпляр класса Person будет содержать только атрибуты name и age, и никакие другие атрибуты не будут созданы.
Надеюсь это поможет вам пройти собеседование на желаемую вами работу, удачи🔥@programistica // #jobs
5 762
🖥 Жадные алгоритмы: Концепция, Примеры и Реализация на Python
Жадные алгоритмы (Greedy Algorithms) являются мощным инструментом в арсенале любого программиста. Они основаны на стратегии выбора локально оптимального решения на каждом шагу с целью получения глобально оптимального решения для всей задачи. В этой статье я расскажу о концепции жадных алгоритмов, разберем несколько классических задач и их решений, а также сравним жадные и оптимальные решения.
🗣Концепция жадных алгоритмов
🗣Примеры задач и их решений
🗣Сравнение жадных и оптимальных решений
🔗 Читать полностью
@programistica // #article
5 762
👀 Книга: Рецепты Python
⏺Обработка и форматирование строк
⏺Встроенные контейнеры данных
⏺Работа с последовательностями
⏺Итерируемые объекты и перебор
⏺Определение дружественных к пользователю функций
⏺Продвинутое использование функций
⏺Определение пользовательских классов
И многое другое
@programistica // #doc
5 762
🖥 Библиотека OpenCV
OpenCV (Open Source Computer Vision Library) - это библиотека компьютерного зрения с открытым исходным кодом, предназначенная для обработки изображений и видео. Она предоставляет широкий спектр функций, включая сегментацию изображений, распознавание объектов, отслеживание движения, а также возможности работы с камерами и потоками видео.
Вот простой пример использования библиотеки OpenCV для загрузки изображения, его отображения и выхода из окна при нажатии клавиши:
import cv2
# Загрузка изображения
image = cv2.imread('example_image.jpg')
# Проверка на успешную загрузку изображения
if image is None:
print('Ошибка: Не удалось загрузить изображение.')
else:
# Отображение изображения в окне
cv2.imshow('Image', image)
print('Изображение успешно загружено. Нажмите любую клавишу, чтобы закрыть окно.')
# Ожидание нажатия клавиши для выхода
cv2.waitKey(0)
# Закрытие окна
cv2.destroyAllWindows()
Для работы этого кода необходимо иметь изображение с названием 'example_image.jpg' в той же папке, где находится данный скрипт.
@programistica // #Library5 762
💻 Вопрос из собеседования: Как проверить
файл .py на синтаксические ошибки, не запуская его?
Утилита py_compile, позволит проверить файл .py на наличие синтаксических ошибок без его запуска.
👩💻Используется py_compile очевидно:
👀открываем командную строку/терминал.
👀переходим в каталог, содержащий файл .py, который вы хотите проверить
👀выполняем: python -m py_compile yourfile.py где yourfile.py - это имя файла, который вы хотите проверить.
Эта команда выполнит проверку файла и выведет описание любых синтаксических ошибок, которые были найдены, или пустой вывод, если ошибок нет.
‼️Когда это может быть полезно? Например, если код большой и в процессе задействует много ресурсов, а нужно всего лишь удостовериться в его валидности.
Надеюсь это поможет вам пройти собеседование на желаемую вами работу, удачи🔥@programistica // #jobs
