在我的数据中,我得到了两个不同部分的两个字典。我创建了一个Class对象,将字典组合成一个对象。

在此示例中,xy属性是分别分配给D_A_xD_A_y的类词典。

如何向已经创建的类实例添加属性?

class Class_Example:
    def __init__(self,x="NaN",y="NaN"):
        self.x = x; self.y = y
    def get_x(self,var): return(self.x[var])
    def get_y(self,var): return(self.y[var])

D_A = {}
D_A_x = {"a":1}
D_A["instance_1"] = Class_Example(x = D_A_x)
#D_A["instance_1"].get_x("a")

D_A_y = {"b":2}
D_A["instance_1"].__init__(y = D_A_y)

print D_A["instance_1"].get_x("a") #Doesn't work because it has been replaced.


我无法同时访问D_A_xD_A_y一次创建类。

我检查了一下,但对我的情况没有帮助:Adding base class to existing object in python

最佳答案

是的,正如您已经注意到的那样,当您为__init__()类调用Class_Example时,它会使用传入的值覆盖xy值,这是第二次,因为您没有发送在x的任何内容中,它都使用默认的"NaN"字符串。

您不应再次调用__init__(),只需设置y属性即可。范例-

D_A["instance_1"].y = D_A_y

07-24 09:15
查看更多