python-3.x - 从字符串命名变量
问题描述
mabe我要求太多了,但是,是否有可能创建变量来实例化具有来自另一个字符串变量的名称的类?
像这样的东西:
name = 'my_class_instance' # string variable holding name
my_class_instance = my_cool_class(arg1, arg2, arg3) #instance of a class in variable with name from string
兄弟,伊维卡
解决方案
首先,我不得不说这是非常非常危险的,不建议这样做。
但是你可以用exec
函数来做到这一点。您可以在此页面上找到有关它的更多信息。
我为你写了一个有代表性的代码。
代码:
name = "my_class_instance"
class MyCoolClass(object):
def __init__(self, arg1, arg2, arg3):
self.arg1 = arg1
self.arg2 = arg2
self.arg3 = arg3
def print_args(self):
print(self.arg1)
print(self.arg2)
print(self.arg3)
exec(
"{var_name} = MyCoolClass({arg1}, {arg2}, {arg3})".format(
var_name=name, arg1="'test_1'", arg2="'test_2'", arg3="'test_3'"
)
)
my_class_instance.print_args()
输出:
>>> python3 test.py
test_1
test_2
test_3
推荐阅读
- excel - 将多个 Excel 文件合并到一个工作簿时出错
- java - 如何使用 Apache POIFS/HSMF 更改 Outlook .msg 文件的附件
- java - 为什么将休眠查询结果传递给 toJson 方法时会出错?
- google-cloud-platform - 适用于 Compute Engine 的 GCP API 网关
- reactjs - 如何在 React 的辅助函数中使用状态?
- reactjs - React JS Axios 地图
- python - 2021年用python发邮件最方便的方法是什么?
- haproxy-ingress - 自定义 TCP 端口的 TCP 白名单在 haproxy 入口中不起作用
- python - 在 python 中使用 range 关键字遍历列表和使用其他变量之间有区别吗?
- android - Pixel 3 XL 上的 AOSP Automotive,更改默认屏幕方向