Python - 对象的独有属性值?

时间:2016-05-04 08:08:38

标签: python attributes

我想说我有这个课程:

class A(object):
 def __init__(self, one=None):
   self.one = one

因此,每次创建A对象时,都可以指定one属性。但只有最后一个没有赋值的对象才能保留它。

例如:

a = A('a')
b = A('b')
c = A()
print a
print b
print c
----
None
b
None

现在这些对象也是数据库中的实际记录(行),因此可以在以后访问它们。

什么是好的模式(如果有的话)动态设置这样的属性(为旧对象取消设置属性)?

1 个答案:

答案 0 :(得分:1)

您可以将实例存储在类变量中,并取消设置__init__中的前一个实例。

class A(object):
    obj = None
    def __init__(self, one=None):
        self.one = one
        if self.one:
            if A.obj:
                A.obj.one = None
            A.obj = self
    def __str__(self):
        return str(self.one)

结果:

>>> a = A('a')
>>> b = A('b')
>>> c = A()
>>> print a
None
>>> print b
b
>>> print c
None