python - 使用从 python 中的命令行输入动态获取的名称创建实例
问题描述
我现在正在使用 argparse,并且我可能想要/需要创建一个类的实例,但实例的名称来自 argparse 存储的命令行变量。我怎么做?Bash 的参数扩展立即浮现在脑海中,但据我所知,Python 没有这样的东西。
具体来说:假设我有一个带有 argparse 的 'name' 参数,它存储 .. 某物的名称。所以看起来像
{name: 'somename'}
在 argparse 命名空间字典中,解析完成后。
现在,假设我想实例化一个类someclass,并给它存储在“name”变量中的名称,即somename,在这里,这样
somename = someclass()
如何“扩展”变量以便可以将其值用作类实例的名称?
解决方案
通过使用 globals() 或 locals() 函数,我们可以将字符串更改为变量名并为其赋值。
d = {'name': 'somename'}
class MyClass:
x = 5
globals()[d['name']]=MyClass()
somename.x
会给5
推荐阅读
- python - 使用视觉里程计进行相机轨迹估计
- d3.js - d3 geoPath投影弄乱了地图
- docker - 错误:container_linux.go:235:启动容器进程导致keycloak/keycloak-gatekeeper
- javascript - 我该如何填充
- php - 在单个产品页面上显示 WooCommerce 产品循环页面中自定义库存状态字段的结果
- python - Python静态方法包装器是不必要的吗?
- php - 未找到接口“App\additional\IManage”
- javascript - 具有展开/折叠内容的引导 4 卡片组 - 希望展开的内容仅影响当前卡片
- r - 有雨天在长期平均值的 81-119% 范围内的年数
- apk - 如何在我的 messenger lite 的聊天中添加背景图片?