【问题标题】:Add attribute to an Instance of an existing Class in Python 2在 Python 2 中将属性添加到现有类的实例
【发布时间】:2016-01-02 19:00:14
【问题描述】:

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

【问题讨论】:

    标签: python class object attributes instance


    【解决方案1】:

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

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

    D_A["instance_1"].y = D_A_y
    

    【讨论】:

      【解决方案2】:

      为什么不干脆做:D_A['instance_1'].y = D_A_y

      【讨论】:

        猜你喜欢
        • 2021-07-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-01-30
        • 2020-03-12
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多