🐍 Укус питона 🐍
2.88K subscribers
774 photos
4 videos
279 links
🐍 Канал о программировании на языке Python. Тематические уроки и лайфхаки.

👽 Админ - @it_dashka
🔊 Купить рекламу: https://telega.in/c/byteofpython

👉 Чат: @abyteofpython
👉 Поделиться с друзьями: @byteofpython
Download Telegram
Что выведет код?
Anonymous Quiz
74%
True
13%
False
5%
0
8%
Ошибку
Что выведет этот код?
Anonymous Quiz
51%
True
33%
False
14%
Ошибку
3%
Узнать ответ
Что выведет код?
Anonymous Quiz
14%
Wow
62%
Heh
12%
None
12%
Ошибку
🐍 PyVista: простота 3D-визуализации с Python

PyVista – это библиотека, которая делает работу с 3D-объектами простой и интуитивной.

👉 Основные преимущества PyVista:

- Простой доступ к VTK: PyVista предоставляет удобный интерфейс для взаимодействия с VTK – мощным инструментом визуализации, не требуя глубоких знаний его сложного API.

- Поддержка различных типов данных: Работайте с 3D-данными в разных форматах, включая сетки, точки и области.

- Инструменты для анализа: PyVista позволяет фильтровать и обрабатывать 3D-данные для получения ценной информации.

👉Что можно делать с PyVista:

- Визуализировать сложные 3D-модели: Создайте реалистичные изображения для презентаций
или публикаций.

- Анализировать 3D-данные: Исследуйте и обрабатывайте данные из разных областей.

- Интегрировать 3D-визуализацию в другие проекты: Используйте PyVista как помощник с 3д проектами.
🐍 Как выражена инкапсуляция в python ?
Спросят с вероятностью 3%

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

Соглашения об именовании

Приватные атрибуты и методы:

- В Python соглашение об именовании позволяет сделать атрибуты и методы приватными, что предотвращает их случайное использование вне класса.

- Атрибуты и методы, начинающиеся с одного подчёркивания (_), считаются защищёнными и не должны использоваться вне класса или подклассов.

- Атрибуты и методы, начинающиеся с двойного подчёркивания (__), подвергаются манглингу имён (name mangling), что делает их труднодоступными извне класса.
class MyClass:
def init(self, value):
self._protected_value = value # Защищённый атрибут
self.__private_value = value # Приватный атрибут

def _protected_method(self):
print("This is a protected method.")

def __private_method(self):
print("This is a private method.")


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

Защищённые атрибуты и методы:

- Они не предназначены для использования вне класса, но могут быть использованы в подклассах.

- Их использование вне класса является плохой практикой, но технически возможно.
class SubClass(MyClass):
def access_protected(self):
print(self._protected_value)
self._protected_method()

instance = SubClass(10)
instance.access_protected()
# Выведет:
# 10
# This is a protected method.


Приватные атрибуты и методы:

- Они подвергаются манглингу имён, что делает их труднодоступными извне класса.

- Внешний доступ возможен, но с использованием специального синтаксиса, что считается плохой практикой.
class AnotherClass:
def init(self, value):
self.__private_value = value

def __private_method(self):
print("This is a private method.")

def access_private(self):
print(self.__private_value)
self.__private_method()

instance = AnotherClass(20)
instance.access_private()
# Выведет:
# 20
# This is a private method.

# Попытка доступа к приватному атрибуту извне
# print(instance.__private_value) # AttributeError

# Доступ с использованием манглинга имён (не рекомендуется)
print(instance._AnotherClass__private_value) # Выведет: 20


Свойства (Properties)


Предоставляют интерфейс для управления доступом к атрибутам и позволяют инкапсулировать логику доступа и изменения данных.
class MyClassWithProperty:
def init(self, value):
self._value = value

@property
def value(self):
return self._value

@value.setter
def value(self, new_value):
if new_value > 0:
self._value = new_value
else:
raise ValueError("Value must be positive")

instance = MyClassWithProperty(10)
print(instance.value) # Выведет: 10
instance.value = 20
print(instance.value) # Выведет: 20
# instance.value = -10 # ValueError: Value must be positive


Инкапсуляция достигается с помощью соглашений об именовании (одинарное подчёркивание для защищённых и двойное подчёркивание для приватных атрибутов и методов) и использования свойств для управления доступом к атрибутам. Это позволяет скрывать внутренние детали реализации и предоставлять контролируемый интерфейс для взаимодействия с объектами.
Что выведет код сверху?
Anonymous Quiz
9%
[]
20%
[] []
27%
None []
44%
Ошибка
🐍 Библиотека PIL (Python Imaging Library) является одной из наиболее популярных библиотек для работы с изображениями.

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

Например, можно добавлять текст, рисовать графические примитивы, накладывать различные эффекты и многое другое.

👉 Библиотека PIL также предоставляет возможность обработки изображений в пакетном режиме. Это означает, что можно применять определенные операции к нескольким изображениям одновременно.

Например, можно изменить размер и применить фильтр к множеству изображений, что позволяет сэкономить время и упростить процесс обработки большого количества изображений.
Что выведет код сверху?
Anonymous Quiz
38%
{1, 2, 3, 4}
56%
{1, 2, 3}
0%
{}
5%
Invalid Syntax
Предположим, что требуется отсортировать данные сначала по столбцу А в порядке возрастания, затем по столбцу B в порядке убывания, а затем по столбцу C в порядке возрастания.

👉 Если данные в столбце B представлены числами, то можно использовать функцию в key, чтобы изменить знак элементов B и получить необходимый результат.

❗️ Однако, если все данные в текстовом формате, то можно воспользоваться устойчивой сортировкой sort в Python (начиная с версии 2.2), которая сохраняет порядок "одинаковых" элементов.

✔️ Для этого можно просто выполнить три сортировки по разным ключам.