首页 > 解决方案 > 我们可以从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中有可能吗?

那些给出负面评论的人,请帮助我写得更好。请添加评论为什么你觉得你投了反对票

标签: 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)

推荐阅读