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

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

👉 Чат: @abyteofpython
👉 Поделиться с друзьями: @byteofpython
Download Telegram
Что выведет данный код
Anonymous Poll
41%
Doc
36%
None
23%
Oшибку
✈️Метод subclasshook используется для определения, является ли один класс подклассом другого. Он вызывается при проверке isinstance() и issubclass() для определения отношения наследования между классами.

⬆️Этот метод позволяет настроить поведение этих функций для пользовательских классов.

➡️Пример:
class A:
def init(self, value):
self.value = value

class B:
def init(self, value):
self.value = value

def subclasshook(cls, subclass):
return (hasattr(subclass, 'value') and
callable(subclass.value) and
subclacc.value.name == 'print_value')

class C:
def init(self, value):
self.value = value

def print_value(self):
print(self.value)

a = A(5)
b = B(10)
c = C(15)

# Проверка
print(issubclass(C, B)) # True
print(issubclass(A, B)) # False


⬆️В примере метод subclasshook класса B проверяет, есть ли у подкласса метод print_value. Если да, то возвращает True, что позволяет считать его подклассом B.
👍3
💩 Какова разница между методами getattr и getattribute?

Оба этих метода являются магическими.

🔘getattr

class Missing:
attr = 42

def getattr(self, name):
print(f"In getattr, asked for {name}")
return 73

m = Missing()
print(m.attr) # 42
print(m.xyz) # In getattr, asked for xyz; 73

Пример кода выше показывает, как метод используется для обработки запроса несуществующего атрибута xyz.

🔘getattribute

class Always:
attr = 42

def getattribute(self, name):
print(f"In getattribute, asked for {name}")
return 73

a = Always()
print(a.attr) # In getattribute, asked for attr; 73
print(a.xyz) # In getattribute, asked for xyz; 73

Здесь же можно увидеть, что метод используется для обработки запросов всех атрибутов, как существующих (attr), так и несуществующих (xyz).

Таким образом, getattribute — это метод, который управляет всеми запросами атрибутов, тогда как getattr вызывается, когда getattribute не находит атрибут.
Что выведет код сверху?
Anonymous Poll
46%
['ab', 'bc']
14%
['Ab', 'Bc']
38%
['AB', 'BC']
1%
['aB', 'bC']
Что выведет код сверху?
Anonymous Poll
13%
6
19%
7
43%
12
25%
Ошибка компиляции
Что такое логирование?

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

➡️Преимущества логирования

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

➡️Как использовать логирование?

- Можно использовать встроенные средства ОС или специализированные инструменты для логирования.

- внедрять функции логирования непосредственно в свои приложения.

В любом случае, важно помнить о необходимости разделять логи по уровням важности и обеспечивать их надлежащее хранение и архивацию.
Что выведет этот код?
Anonymous Poll
34%
[]
25%
[2]
38%
Ошибку
3%
Узнать ответ
➡️Основы Unstructured

Библиотека предоставляет удобные методы для работы с различными типами данных. Например, для чтения текста из файла можно использовать следующий код:

from unstructured import Text

text_data = Text.from_file('example.txt')
print(text_data.content)


⬆️Эти простые команды позволяют легко импортировать и работать с текстовыми данными.

➡️Обработка Текстовых Данных

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

from unstructured import Text

text_data = Text('Это пример текста для токенизации.')
tokens = text_data.tokenize()
print(tokens)


⬆️Этот код разобьёт текст на отдельные слова, что может быть полезно для дальнейшего анализа и обработки данных.