5
我回顧了一些舊的Python代碼來到這個防空火炮「模式」頻繁:這是相當於Python中的拷貝構造函數嗎?
class Foo(object):
def __init__(self, other = None):
if other:
self.__dict__ = dict(other.__dict__)
請問這是怎麼拷貝構造函數通常是用Python實現?
我回顧了一些舊的Python代碼來到這個防空火炮「模式」頻繁:這是相當於Python中的拷貝構造函數嗎?
class Foo(object):
def __init__(self, other = None):
if other:
self.__dict__ = dict(other.__dict__)
請問這是怎麼拷貝構造函數通常是用Python實現?
這是一種將所有屬性從一個對象複製到另一個對象的方法。然而注意的是:
__init__
方法可具有任何類型(不是同一類型的對象被創建)。請注意,屬性不會被複制,它們是共享。
>>> a = Foo()
>>> a.x=[1,2,3]
>>> b = Foo(a)
>>> b.x[2] = 4
>>> a.x
[1, 2, 4]
相關:http://stackoverflow.com/questions/1241148/copy-constructor-in-python – 2012-02-03 16:48:52