Технически, то, что вы просите (или, по крайней мере, то, как все это интерпретируют), просто не очень хорошая практика, особенно если вы можете получать информацию из ненадежного источника (помните, любой источник другойчем вы сами , как правило, следует считать недоверенными!).Вы должны внести эти вещи в явный белый список, потому что кто-то может инициировать выполнение функции или создание объекта, для которого вы не хотите использовать свойства, которые вам действительно не нужны ...
То, что вы можете сделать вместо этого, - это нечтовот так (это, конечно, дико неполно, но должно дать вам общее представление):
class Laptop(object):
pass
class Desktop(object):
pass
possible_classes = {
"laptop": Laptop,
"desktop": Desktop,
}
new_object = possible_classes[identifier_string](propA, propB, propC, ...)
Затем просто добавьте отображение для каждого нового типа объекта в dictable_classes.