在我的数据中,我得到了两个不同部分的两个字典。我创建了一个Class对象,将字典组合成一个对象。
在此示例中,x
和y
属性是分别分配给D_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
和D_A_y
一次创建类。我检查了一下,但对我的情况没有帮助:Adding base class to existing object in python
最佳答案
是的,正如您已经注意到的那样,当您为__init__()
类调用Class_Example
时,它会使用传入的值覆盖x
和y
值,这是第二次,因为您没有发送在x
的任何内容中,它都使用默认的"NaN"
字符串。
您不应再次调用__init__()
,只需设置y
属性即可。范例-
D_A["instance_1"].y = D_A_y