मेरी "परिवर्तनीय" कक्षा में इस त्रुटि को समझने का प्रयास कर रहा है।टाइप एरर: इस पैटर्न ऑब्जेक्ट को गहराई से नहीं कर सकता
मैं अपने "परिवर्तनीय" वर्ग में एक sre.SRE_Pattern स्टोर करने की उम्मीद कर रहा था। मैंने वैरिएबल क्लास की प्रतिलिपि बनाना शुरू कर दिया और देखा कि यह मेरे सभी परिवर्तनीय वर्ग के उदाहरणों को बदलने का कारण बन रहा था। अब मैं समझता हूं कि मुझे इस वर्ग को गहराई से करने की ज़रूरत है, लेकिन अब मैं "टाइप एरर: इस पैटर्न ऑब्जेक्ट को गहराई से नहीं चला सकता" में भाग लेता हूं। निश्चित रूप से, मैं पैटर्न को एक स्ट्रिंग स्ट्रिंग के रूप में स्टोर कर सकता हूं लेकिन मेरा बाकी कोड पहले से संकलित पैटर्न की अपेक्षा करता है! एक पैटर्न ऑब्जेक्ट के साथ मेरी वैरिएबल क्लास की प्रतिलिपि बनाने का सबसे अच्छा तरीका क्या होगा?
import re
from copy import deepcopy
class VariableWithRE(object):
"general variable class"
def __init__(self,name,regexTarget,type):
self.name = name
self.regexTarget = re.compile(regexTarget, re.U|re.M)
self.type = type
class VariableWithoutRE(object):
"general variable class"
def __init__(self,name,regexTarget,type):
self.name = name
self.regexTarget = regexTarget
self.type = type
if __name__ == "__main__":
myVariable = VariableWithoutRE("myName","myRegexSearch","myType")
myVariableCopy = deepcopy(myVariable)
myVariable = VariableWithRE("myName","myRegexSearch","myType")
myVariableCopy = deepcopy(myVariable)
यह देखते हुए कि संकलक regexp अपरिवर्तनीय है, यह आवश्यक नहीं है यह deepcopy है। हालांकि मुझे याद नहीं है कि कैसे एक विशेष प्रकार को संभालने के लिए 'deepcopy()' को बताएं (लेकिन ध्यान दें कि यदि आप आवश्यक हो तो निर्माण में विशेषताओं को जोड़ सकते हैं)। –
आपके कोड फेंकने अपवाद से कौन सी रेखा? मैंने इसे कॉपी किया है और फिर संकलित किया है -> यह मेरी तरफ से किसी भी त्रुटि के बिना काम करता है। मुझे मिली एकमात्र चीज यह है कि आप वेरिएबल का उपयोग करने का प्रयास करते हैं जो पाइथन विधि 'टाइप' को फिर से लिखते हैं और यह बहुत अच्छी शैली नहीं है। –
अंतिम पंक्ति Python 2.6 में मेरे लिए त्रुटि फेंकता है। –