TGViewer
Python/ django Python/ django @pythonl · 58.6K subscribers
Post #3614 6.06K
🖥 Динамическое создание экземпляра класса из строки в Python

⏩Итак, для динамического создания экземпляра класса в Python можно использовать модуль importlib:
from importlib import import_module

module_name = 'your_module' # Определите название своего модуля
class_name = 'YourClass' # И название нужного вам класса

instance = getattr(import_module(module_name), class_name)()

Здесь функция import_module импортирует нужный модуль, getattr находит в нем класс, а () создает экземпляр этого класса.


⏩Полезно оформить процесс создания экземпляра класса в виде переиспользуемой функции. Это сэкономит ваше время и усилия:
def get_instance(module_name, class_name):
try:
module = import_module(module_name)
class_obj = getattr(module, class_name)
instance = class_obj()
return instance
except ImportError:
print("Модуль отсутствует")
return None
except AttributeError:
print("Класс не найден")
return None


Логирование исключений помогает определить причины проблем с импортом или созданием экземпляров классов.

📎 Читать подробнее

@pythonl
  • 👍 12
  • ❤ 3
  • 🔥 2
  • 🤩 1
More from @pythonl
  1. Oct 18, 2026🔍 «Разберись, как это работает»: ИИ-агентам дали инструменты для реверс-инжиниринга REA,…
  2. Oct 17, 2026🧠 Python + Prolog: нейросети и строгая логика в одном процессе Clausal Prolog объединяет…
  3. Oct 17, 2026🔥 Хочешь быстрее расти в IT? Хватит учиться в одиночку Окружение решает больше, чем кажет…
  4. Oct 16, 2026🧠 Tencent открыла Hy Memory: общую память для ИИ-ассистентов и редакторов кода Система об…
  5. Oct 15, 2026🖥 Datadog научила профилировщик Python понимать asyncio: флеймграфы со «стеками из стеков…
  6. Oct 14, 2026📱 35 млрд параметров на смартфоне с потреблением около 3 ГБ оперативной памяти. OpenBMB п…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →