首页 > 解决方案 > 使用从 python 中的命令行输入动态获取的名称创建实例

问题描述

我现在正在使用 argparse,并且我可能想要/需要创建一个类的实例,但实例的名称来自 argparse 存储的命令行变量。我怎么做?Bash 的参数扩展立即浮现在脑海中,但据我所知,Python 没有这样的东西。

具体来说:假设我有一个带有 argparse 的 'name' 参数,它存储 .. 某物的名称。所以看起来像

{name: 'somename'} 

在 argparse 命名空间字典中,解析完成后。

现在,假设我想实例化一个类someclass,并给它存储在“name”变量中的名称,即somename,在这里,这样

somename = someclass()

如何“扩展”变量以便可以将其值用作类实例的名称?

标签: pythonclassoopvariables

解决方案


通过使用 globals() 或 locals() 函数,我们可以将字符串更改为变量名并为其赋值。

d = {'name': 'somename'} 

class MyClass:
    x = 5

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

somename.x会给5


推荐阅读