繁体   English   中英

将属性添加到 Python 2 中现有类的实例

[英]Add attribute to an Instance of an existing Class in Python 2

在我的数据中,我在两个不同的部分得到两个字典。 我创建了一个 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一次创建类。

我检查了这个,但它对我的情况没有帮助: 将基类添加到 python 中的现有对象

为什么不简单地做: D_A['instance_1'].y = D_A_y

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

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

D_A["instance_1"].y = D_A_y

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM