@barolina
turn coffee into code

Преобразование строки в название класса?

Есть словарь со строковым название класса.
dic = {'name':'Class1'}]
И есть сам класс Class1= class...
есть ли возможность получить из словаря значение, которое возвращается в формате строки преобразовать ее в класс, для вызова методов?
  • Вопрос задан
  • 362 просмотра
Пригласить эксперта
Ответы на вопрос 2
petermzg
@petermzg
Самый лучший программист
Вам нужно знать не только имя класса, но и имя модуля.
Если все в одном файле, то пример будет такой:
import sys

class TestClass:

	def __init__(self):
		self.name = 'TestClass - 2'
		
	def write(self):
		print self.name

module = sys.modules[__name__]
class_ = getattr(module, 'TestClass')
instance = class_()
instance.write()
Ответ написан
Комментировать
создать словарь, с классами и именами
classes = {
  'Class1': Class1,
  'Class2': Class2
}

и вызывать из этого словаря по имени
classes[dic['name']].some_method()

Или через eval

eval(dict['name']).some_method()
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы