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

时间:2015-10-06 01:04:47

标签: python class object attributes instance

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

在此示例中,driver.find_element_by_css_selector("a[data-planId='31']") x属性分别是分配给yD_A_x的类字典。

如何将属性添加到已创建的类实例中?

D_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_x同时创建课程。

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

2 个答案:

答案 0 :(得分:1)

为什么不这样做:D_A['instance_1'].y = D_A_y

答案 1 :(得分:1)

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

您不应再次致电__init__(),只需设置y属性即可。示例 -

D_A["instance_1"].y = D_A_y