【问题标题】:Create instance with name obtained dynamically from command line input in python使用从 python 中的命令行输入动态获取的名称创建实例
【发布时间】:2020-04-24 09:54:28
【问题描述】:

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

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

{name: 'somename'} 

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

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

somename = someclass()

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

【问题讨论】:

    标签: python class oop variables


    【解决方案1】:

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

    d = {'name': 'somename'} 
    
    class MyClass:
        x = 5
    
    globals()[d['name']]=MyClass()
    

    somename.x 会给5

    【讨论】:

      猜你喜欢
      • 2012-06-14
      • 2017-11-15
      • 2010-12-23
      • 1970-01-01
      • 1970-01-01
      • 2021-07-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多