这是我的第一个问题,请理解我不是母语人士。
我正在尝试在脚本解析JSON期间创建类的实例。 脚本的字典像:
classes = {'user': 'User', 'chat': 'Chat', 'message': 'Message'}
和类User
,Chat
,Message
。
当脚本在字典中的json中找到键时,我需要创建相应类的实例。
我找到了解决方案,但我认为这很愚蠢:
>>> class User():
... name = 'John'
>>> class_name = 'User()'
>>> variable_name = 'user'
>>> exec(f'{variable_name}={class_name}')```
答案 0 :(得分:0)
您可以按以下方式使用globals()
命令:
globals()['user'] = globals()['User']()
globals()
函数返回您在全局范围内获得的所有内容(为dict
)
完整代码:
class User():
pass
class Chat():
pass
class Message():
pass
classes = {'user': 'User', 'chat': 'Chat', 'message': 'Message'}
my_globals = globals()
for var_name, class_name in classes.items():
my_globals[var_name] = my_globals[class_name]()