python - 我们可以从python中的另一个变量创建self变量吗
问题描述
我正在尝试创建动态自变量。
我有以下代码
import json
class ABC:
def __init__(self):
with open("file") as f:
data = json.load(f)
fields = data["messages"] # it returns a string as "val1|val2|val3|val4"
new_fields = fields.split("|")
##I want to create self variables as self.val1 = <some value>, self.val2 = <some_value>, self.val3 = <some_value>, self.val4 = <some_value>
a = "version"
self.a = 10 ### I want to retreive self.version since a is version
print ("***************", self.version)
def pri(self):
print("*************", self.version)
我没有得到输出。我希望输出为 10。我想动态创建很多变量。
我想创建动态自变量。我将从另一个文件中读取变量并创建一个类变量。在python中有可能吗?
那些给出负面评论的人,请帮助我写得更好。请添加评论为什么你觉得你投了反对票
解决方案
您可以使用以下方法执行以下操作setattr
,
class ABC:
def __init__(self, args, val):
a = args
self.a = val ### I want to retreive self.version since a is version
setattr(self, a, self.a)
print ("***************", self.version)
def pri(self):
print("*************", self.version)
a = ABC("version", 10)
a.pri()
('***************', 10)
('*************', 10)
推荐阅读
- .htaccess - Htaccess 漂亮的 URL PHP HTML
- excel - 在多个工作簿中查找一个字符串,然后查找它旁边的单元格的值
- c# - 受保护的覆盖 IAsyncResult BeginExecute - 移植到 .net 核心
- javascript - 鉴于目标整个 div 不使用 jspdf 导出为 pdf?
- webpack - Webpack 在 watch 模式下覆盖 stats 数据
- r - 对 R 中的每个值变化进行排名
- javascript - 如何让导入在 javascript 中工作?
- maven - 黄瓜+Maven+TestNG
- django - Django中数组的复选框值
- r - 如何在维恩图 R 中的每个图上添加标题