我想说我有这个课程:
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
现在这些对象也是数据库中的实际记录(行),因此可以在以后访问它们。
什么是好的模式(如果有的话)动态设置这样的属性(为旧对象取消设置属性)?
答案 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