Ben arasındaki farkı anlamak copy
vs. deepcopy
kopya modülünde. Daha önce copy.copy
ve copy.deepcopy
başarıyla kullandım , ancak ilk kez gerçekten __copy__
ve __deepcopy__
yöntemlerini aşırı yüklemeye başladım . Zaten yoluyla etrafına Googled ve baktım örnekleri aramaya Python modülleri dahili __copy__
ve __deepcopy__
fonksiyonları (örn sets.py
, decimal.py
ve fractions.py
), ama yine de% 100 emin ben doğru var benim.
İşte benim senaryom:
Bir yapılandırma nesnem var. Başlangıçta, bir yapılandırma nesnesini varsayılan bir değerler kümesiyle başlatacağım. Bu konfigürasyon, diğer birçok nesneye devredilecektir (tüm nesnelerin aynı konfigürasyonla başlamasını sağlamak için). Bununla birlikte, kullanıcı etkileşimi başladığında, her nesnenin, birbirlerinin konfigürasyonlarını etkilemeden kendi konfigürasyonlarını bağımsız olarak ayarlaması gerekir (bu bana, başkalarını teslim etmek için ilk konfigürasyonumun derin kopyalarını yapmam gerektiğini söylüyor).
İşte örnek bir nesne:
class ChartConfig(object):
def __init__(self):
#Drawing properties (Booleans/strings)
self.antialiased = None
self.plot_style = None
self.plot_title = None
self.autoscale = None
#X axis properties (strings/ints)
self.xaxis_title = None
self.xaxis_tick_rotation = None
self.xaxis_tick_align = None
#Y axis properties (strings/ints)
self.yaxis_title = None
self.yaxis_tick_rotation = None
self.yaxis_tick_align = None
#A list of non-primitive objects
self.trace_configs = []
def __copy__(self):
pass
def __deepcopy__(self, memo):
pass
Bana uygun davranışı sağlamak ve vermek için bu nesne üzerinde copy
ve deepcopy
yöntemlerini uygulamanın doğru yolu nedir ?copy.copy
copy.deepcopy