'm使用代码来管理远程存储上的对象,这意味着我可以创建对象作为从商店读取的结果,或者创建发送到商店的对象创作时间。这里的真正目标是仅当远程存储上的对象表示存在时才创建对象 - 如果远程存储上没有表示,则不会创建对象。classmethod作为自我创建的对象构造函数
class myClass:
def __init__(self, parameter1, parameter2)
self.param1 = parameter1
self.param2 = parameter2
@classmethod
def create(parameter1, parameter2):
if SendToRemoteStore(parameter1, parameter2) == True:
return myClass(parameter1, parameter2)
else:
return None
def __del__():
DeleteFromRemoteStore(self)
# Two ways to create an instance
# As the result of a remote read:
data = GetFromRemoteStore()
object1 = myClass(data['foo'], data['bar'])
# Or if I'm creating the object here and
# need to save it to store on creation:
object2 = myClass.create('baz', 'bar')
你在这里有什么问题? –
另外:不要依赖'__del__'做任何相关的事情 - 当你完成对象时显式地处理对象,可能会添加一个[上下文管理器](http://www.doughellmann.com/PyMOTW/contextlib/)方便,并在'__del__'中发出警告,如果某些东西没有正常处理。 – delnan
呵呵,我不知何故把问题的一部分留下了问题 - 这真的是“我在做错了吗?” – caw