'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