दिलचस्प पोस्ट
setNeedsLayout बनाम setNeedsUpdateConstraints और लेआउटआईफ़नडड बनाम अपडेटConstraintsIfNeeded कैसे स्मृति leaks को रोकने के लिए node.js? आईएसओ 8601 दिनांक स्वरूप पार्सिंग जैसे 2015-06-27 टी 13: 16: 37.363 जे जावा में फिबोनैकी अनुक्रम उत्पन्न करना क्या SQLite डेटाबेस में एक समय में एकाधिक पंक्तियाँ सम्मिलित करना संभव है? जावास्क्रिप्ट में तारों की तुलना करने के लिए इष्टतम तरीका है? प्लस और माइनस साइंस क्या एक विधि के आगे उद्देश्य सी में क्या मतलब है? फ़ंक्शन से अनन्य आईपीटीआर रिटर्निंग आर में खाली वेक्टर के लिए मूल्य जोड़ें? मैं ट्यूपल को विविधतापूर्ण टेम्पलेट फंक्शन के तर्कों में कैसे विस्तारित करूं? jQuery: <input type = "file" /> से चयनित फ़ाइल नाम प्राप्त करें कैसे आउटलुक नया मेल खिड़की खोलने के लिए सी # बराबर और GetHashCode के लिए सबसे अच्छी रणनीति क्या है? एंड्रॉइड फिनिश () मेमोरी से ऐप साफ़ नहीं करता है सीएसएस होवर इवेंट पर, क्या मैं दूसरे डिवा स्टाइल को बदल सकता हूँ?

मैं अजगर में वस्तु की एक प्रति कैसे बना सकता हूं?

मैं किसी ऑब्जेक्ट की प्रतिलिपि बनाना चाहता हूं। मैं चाहता हूं कि नई ऑब्जेक्ट को पुराने ऑब्जेक्ट (फ़ील्ड के मान) के सभी गुणों के पास होना चाहिए। लेकिन मुझे स्वतंत्र वस्तुओं रखना है इसलिए, अगर मैं नए ऑब्जेक्ट के फ़ील्ड्स के मूल्यों को बदलता हूं, तो पुराने ऑब्जेक्ट को उस पर असर नहीं होना चाहिए।

Solutions Collecting From Web of "मैं अजगर में वस्तु की एक प्रति कैसे बना सकता हूं?"

copy.deepcopy() फ़ंक्शन पर एक नज़र डालें यह ठीक उसी तरह करना चाहिए जो आपको चाहिए। एक अच्छा सवाल के लिए एक संबंधित प्रश्न के उत्तर भी देखें

मैं अजगर में वस्तु की एक प्रति कैसे बना सकता हूं?

इसलिए, अगर मैं नए ऑब्जेक्ट के फ़ील्ड्स के मूल्यों को बदलता हूं, तो पुराने ऑब्जेक्ट को उस पर असर नहीं होना चाहिए।

तुम्हारा मतलब है एक अस्थायी वस्तु फिर

पायथन 3 में, सूचियों को copy विधि प्राप्त होती है (2 में, आप प्रति बनाने के लिए एक टुकड़ा का उपयोग करते हैं):

 >>> a_list = list('abc') >>> a_copy_of_a_list = a_list.copy() >>> a_copy_of_a_list is a_list False >>> a_copy_of_a_list == a_list True 

उथले प्रतियां

उथले प्रतियां केवल बाहरी कंटेनर की प्रतियां हैं

list.copy एक उथले प्रति है:

 >>> list_of_dict_of_set = [{'foo': set('abc')} ... ] >>> list_of_dict_of_set = [{'foo': set('abc')}] >>> lodos_copy = list_of_dict_of_set.copy() >>> lodos_copy[0]['foo'].pop() 'c' >>> lodos_copy [{'foo': {'b', 'a'}}] >>> list_of_dict_of_set [{'foo': {'b', 'a'}}] 

आपको आंतरिक वस्तुओं की एक प्रति प्राप्त नहीं होती है वे वही वस्तुएं हैं – इसलिए जब वे उत्परिवर्तित होते हैं, तो परिवर्तन दोनों कंटेनरों में दिखाई देता है

गहरी प्रतियां

गहरी प्रतियां प्रत्येक आंतरिक वस्तु की पुनरावर्ती प्रतियां हैं।

 >>> lodos_deep_copy = copy.deepcopy(list_of_dict_of_set) >>> lodos_deep_copy[0]['foo'].add('c') >>> lodos_deep_copy [{'foo': {'c', 'b', 'a'}}] >>> list_of_dict_of_set [{'foo': {'b', 'a'}}] 

परिवर्तन मूल में केवल प्रतिलिपि में प्रतिबिंबित नहीं होते हैं

अपरिवर्तनीय वस्तुओं

अपरिवर्तनीय वस्तुओं को आमतौर पर कॉपी करने की आवश्यकता नहीं होती है वास्तव में, यदि आप कोशिश करते हैं, तो पायथन आपको केवल मूल वस्तु देगा:

 >>> a_tuple = tuple('abc') >>> tuple_copy_attempt = a_tuple.copy() Traceback (most recent call last): File "<stdin>", line 1, in <module> AttributeError: 'tuple' object has no attribute 'copy' 

ट्यूपल्स के पास एक कॉपी विधि भी नहीं है, तो इसे एक टुकड़ा के साथ आज़माएं:

 >>> tuple_copy_attempt = a_tuple[:] 

लेकिन हम देखते हैं कि यह एक ही वस्तु है:

 >>> tuple_copy_attempt is a_tuple True 

इसी प्रकार तार के लिए:

 >>> s = 'abc' >>> s0 = s[:] >>> s == s0 True >>> s is s0 True 

और फ्रॉजेन्ससेट के लिए, भले ही उनके पास एक copy विधि है:

 >>> a_frozenset = frozenset('abc') >>> frozenset_copy_attempt = a_frozenset.copy() >>> frozenset_copy_attempt is a_frozenset True 

अपरिवर्तनीय वस्तुओं की प्रतिलिपि कब करें

अपरिवर्तनीय वस्तुओं की नकल की जानी चाहिए, यदि आपको एक अस्थायी आंतरिक ऑब्जेक्ट की प्रतिलिपि की आवश्यकता है।

 >>> tuple_of_list = [], >>> copy_of_tuple_of_list = tuple_of_list[:] >>> copy_of_tuple_of_list[0].append('a') >>> copy_of_tuple_of_list (['a'],) >>> tuple_of_list (['a'],) >>> deepcopy_of_tuple_of_list = copy.deepcopy(tuple_of_list) >>> deepcopy_of_tuple_of_list[0].append('b') >>> deepcopy_of_tuple_of_list (['a', 'b'],) >>> tuple_of_list (['a'],) 

जैसा कि हम देख सकते हैं, जब प्रतिलिपि का आंतरिक उद्देश्य उत्परिवर्तित होता है, तो मूल परिवर्तन नहीं होता है।