Ben arasındaki farkı anlamak copyvs. deepcopykopya modülünde. Daha önce copy.copyve copy.deepcopybaş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.pyve 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 copyve deepcopyyöntemlerini uygulamanın doğru yolu nedir ?copy.copycopy.deepcopy