Создать экземпляр с именем, полученным динамически из ввода командной строки в python - PullRequest
0 голосов
/ 24 апреля 2020

Сейчас я работаю с argparse, и я нахожусь в точке, где меня поразило, что мне может понадобиться / нужно создать экземпляры класса, но имя экземпляра происходит из переменной командной строки, хранящейся в argparse. Как я могу это сделать? Расширение параметров Bash сразу пришло в голову, но, насколько я знаю, Python ничего подобного не имеет.

В частности: допустим, у меня есть аргумент 'name' с argparse, который магазины .. название чего-то. Таким образом, после разбора это выглядит как

{name: 'somename'} 

в словаре пространства имен argparse.

Теперь, скажем, я хочу создать экземпляр класса someclass и дать ему имя, хранящееся в переменной 'name', то есть somename , здесь, такое, что

somename = someclass()

Как «развернуть» переменную, чтобы я мог использовать ее значение в качестве имени экземпляра класса?

1 Ответ

0 голосов
/ 24 апреля 2020

Используя функцию globals () или locals (), мы можем изменить строку на имя переменной и присвоить ей значение.

d = {'name': 'somename'} 

class MyClass:
    x = 5

globals()[d['name']]=MyClass()

somename.x даст 5

...