向python2中现有类的实例添加属性

2024-04-24 12:53:27 发布

您现在位置:Python中文网/ 问答频道 /正文

在我的数据中,我在两个不同的部分得到了两本词典。我创建了一个类对象来将字典组合成一个对象。你知道吗

在本例中,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


Tags: 数据对象instanceselfgetreturn字典属性
2条回答

为什么不干脆做:D_A['instance_1'].y = D_A_y?你知道吗

是的,正如您已经注意到的,当您为Class_Example类调用__init__()时,它会用传入的值覆盖xy值,并且在第二次调用时,由于您没有为x发送任何内容,因此它使用默认的"NaN"字符串。你知道吗

您不应该再次调用__init__(),您可以简单地设置y属性。示例-

D_A["instance_1"].y = D_A_y

相关问题 更多 >