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

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

👉 Чат: @abyteofpython
👉 Поделиться с друзьями: @byteofpython
Download Telegram
➡️Что такое importlib?

Это встроенная библиотека Python, которая предоставляет интерфейс для механизма импорта. С ее помощью вы можете программно импортировать модули, перезагружать их и даже создавать свои собственные импортеры!

➡️Вот простой пример использования importlib:

import importlib

# Динамический импорт модуля
math = importlib.import_module('math')

# Использование импортированного модуля
print(math.pi) # Выводит 3.141592653589793

# Перезагрузка модуля
importlib.reload(math)


➡️С importlib вы можете:
• Динамически импортировать модули
• Перезагружать модули во время выполнения
• Создавать пользовательские импортеры
• Работать с пространствами имен пакетов

🔎Эта библиотека особенно полезна при разработке плагинов, создании расширяемых приложений или отладке кода.
👍3
Что выведет код?
Anonymous Poll
60%
True
37%
False
1%
None
2%
Ошибку
💩 Какова разница между методами 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
19%
[0]
29%
[[0]]
16%
[[...]]
36%
Ошибку
0%
Узнать ответ
Что выведет этот код?
Anonymous Poll
35%
1
20%
2
36%
Ошибку
9%
Узнать ответ
✈️Python имеет встроенный модуль zipfile, который предоставляет функционал для работы с архивами ZIP. Давайте создадим простой пример, чтобы продемонстрировать его возможности:

import zipfile

# Создаем новый ZIP файл
with zipfile.ZipFile('новый_архив.zip', 'w') as new_zip:
# Добавляем файлы в архив
new_zip.write('file1.txt')
new_zip.write('file2.txt')
# Можно добавить еще файлы по мере необходимости

⬆️Этот небольшой код создает новый ZIP архив под именем новый_архив.zip и помещает в него файлы file1.txt и file2.txt.

➡️Модуль zipfile обладает широкими возможностями, позволяя извлекать файлы, читать содержимое архива, добавлять и удалять файлы, а также многое другое. Это удобный инструмент, который позволяет манипулировать архивами непосредственно из кода Python.Если вам интересно узнать больше о модуле zipfile или экспериментировать с архивами в Python, рекомендую обратиться к официальной документации Python.
👍3
Что выведет код?
Anonymous Poll
38%
True
18%
False
38%
Exit
3%
None
3%
Ошибку