Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> Python

पायथन एट्रीब्यूट एरर:ए हाउ-टू गाइड

विशेषताएँ किसी वस्तु, डेटा प्रकार या वर्ग से जुड़े मान या कार्य हैं। अगर आप किसी एट्रिब्यूट को किसी वैल्यू पर कॉल करते हैं जिसका डेटा टाइप या क्लास उस एट्रिब्यूट का समर्थन नहीं करता है, तो आपको एट्रीब्यूट एरर का सामना करना पड़ेगा।

यह मार्गदर्शिका चर्चा करती है कि एक विशेषता त्रुटि क्या है और इसका क्या अर्थ है। हम एट्रीब्यूट एरर के एक उदाहरण के माध्यम से चलेंगे ताकि आप सीख सकें कि अपने कोड में किसी एक को कैसे ठीक किया जाए।

पायथन एट्रीब्यूट एरर क्या है?

जब आप किसी ऑब्जेक्ट की विशेषता को कॉल करने का प्रयास करते हैं, जिसका प्रकार उस विधि का समर्थन नहीं करता है, तो एक पायथन एट्रीब्यूट एरर उठाया जाता है। उदाहरण के लिए, पायथन append() का उपयोग करने का प्रयास कर रहा है एक स्ट्रिंग पर विधि एक विशेषता त्रुटि देता है क्योंकि तार समर्थन नहीं करते हैं संलग्न ()

एक पायथन वर्ग में, आप उस वर्ग की वस्तुओं द्वारा साझा की जाने वाली विधियों और मूल्यों को परिभाषित कर सकते हैं। यही कारण है कि कुछ लोग कक्षाओं को वस्तुओं के ब्लूप्रिंट के रूप में समझते हैं।

किसी विधि या वर्ग को कॉल करना यह कहने का एक और तरीका है कि आप उस वर्ग की विशेषता को संदर्भित कर रहे हैं। किसी विशेषता के बारे में सोचने का एक तरीका किसी व्यक्ति की शारीरिक विशेषता के समान है। कुछ लोगों की आंखें नीली होती हैं। कुछ लोगों के बाल गुलाबी रंग के होते हैं। ये सभी विशेषताएँ हैं।

पायथन वर्ग में, एक विशेषता "eye_color" हो सकती है। यह विशेषता किसी व्यक्ति की आंखों के रंग को परिभाषित कर सकती है। एक विशेषता एक फ़ंक्शन भी हो सकती है। changeEyeColor() . नामक एक फ़ंक्शन "eye_color" का मान बदल सकता है।

डेटा प्रकारों में विशेषताएँ होती हैं। उदाहरण के लिए, आप एक स्ट्रिंग को सूची में बदलने के लिए पायथन जॉइन () विधि का उपयोग कर सकते हैं। स्ट्रिंग ऑब्जेक्ट शामिल हों () . का समर्थन करते हैं विधि।

यदि आप किसी फ़ंक्शन या मान को संदर्भित करने का प्रयास करते हैं जो किसी वर्ग ऑब्जेक्ट या डेटा प्रकार से संबद्ध नहीं है, तो आपको एक विशेषता त्रुटि का सामना करना पड़ेगा।

81% प्रतिभागियों ने कहा कि बूटकैंप में भाग लेने के बाद उन्हें अपनी तकनीकी नौकरी की संभावनाओं के बारे में अधिक आत्मविश्वास महसूस हुआ। आज ही एक बूटकैंप से मिलान करें।

बूटकैंप शुरू करने से लेकर अपनी पहली नौकरी खोजने तक, औसत बूटकैंप ग्रेड ने करियर संक्रमण में छह महीने से भी कम समय बिताया।

विशेषता त्रुटि पायथन उदाहरण

आइए एक प्रोग्राम लिखें जो जूतों की दो सूचियों को मिलाता है। दो जूतों की दुकानों का विलय हो रहा है और वे अपने द्वारा बेचे जाने वाले सभी अद्वितीय जूतों की सूची बनाना चाहते हैं।

शुरू करने के लिए, आइए एक पायथन सेट को परिभाषित करें जिसमें स्टोर एक से जूते शामिल हैं, हैरिसन शूज़:

harrisons_shoes = {"Nike Air Force 1 07", "Nike Air Max Plus", "Adidas Gazelle"}

हम अपने सेट को परिभाषित करने के लिए घुंघराले ब्रेसिज़ का उपयोग करते हैं। इसके बाद, हैरिसन के साथ विलय करने वाले स्टोर द्वारा पेश किए जाने वाले जूतों के नाम के साथ एक सेट को परिभाषित करें। इस जूते की दुकान को शू एम्पोरियम कहा जाता है:

shoe_emporium = {"Adidas Samba", "Adidas Superstar", "Nike Air Max Plus"}

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

अपने सेट को एक साथ जोड़ने के लिए, हम बिल्ट-इन फ़ंक्शन का उपयोग करने जा रहे हैं जिसे एक्सटेंड ():

. कहा जाता है
harrisons_shoes.extend(shoe_emporium)
print(harrisons_shoes)

विस्तार () विधि "shoe_emporium" सेट से सभी जूतों को "harrisons_shoes" सेट में जोड़ती है। हम एक पायथन का उपयोग करते हैं प्रिंट () बयान। इससे हम अपने नए सेट में सभी जूतों को देख सकते हैं। आइए अपना कोड चलाएं और देखें कि क्या होता है:

Traceback (most recent call last):
  File "main.py", line 3, in <module>
	harrisons_shoes.extend(shoe_emporium)
AttributeError: 'set' object has no attribute 'extend'

हमारा कोड एक विशेषता त्रुटि देता है।

AttributeError Python Solution

हमारा त्रुटि संदेश हमें बताता है कि हम विस्तार () . विधि का उपयोग नहीं कर सकते हैं किसी ऑब्जेक्ट पर जिसका डेटा प्रकार एक सेट है। ऐसा इसलिए है क्योंकि विस्तार () एक सूची विधि है। यह सेट द्वारा समर्थित नहीं है।

यदि हम अपने दो सेटों को मर्ज करना चाहते हैं, तो हमें एक अतिरिक्त चिह्न का उपयोग करना होगा:

harrisons_shoes.update(shoe_emporium)
print(harrisons_shoes)

यह "shoe_emporium" सेट की सामग्री को "harrisons_shoes" सेट में जोड़ देगा। फिर हम कंसोल पर सेट "harrisons_shoes" में सभी मानों को प्रिंट करते हैं। आइए अपना नया कार्यक्रम चलाते हैं:

{'Nike Air Force 1 07', 'Adidas Superstar', 'Adidas Samba', 'Nike Air Max Plus', 'Adidas Gazelle'}

हमारा कार्यक्रम हमारे दो मूल सेटों के सभी जूतों के साथ एक सेट लौटाता है। जबकि हमारे मूल दो सेटों में छह मान थे, अब केवल पाँच हैं। ऐसा इसलिए है क्योंकि दो जूते समान थे और सेट केवल अद्वितीय मान संग्रहीत कर सकते हैं।

हमारा कार्यक्रम हमारे दो मूल सेटों के सभी जूतों के साथ एक सेट लौटाता है। जबकि हमारे मूल दो सेटों में छह मान थे, अब केवल पाँच हैं। ऐसा इसलिए है क्योंकि दो जूते समान थे और सेट केवल अद्वितीय मान संग्रहीत कर सकते हैं।

एक्सप्लोर करने के लिए समान विशेषता त्रुटियां

विशेषताएँ त्रुटियाँ अविश्वसनीय रूप से सामान्य हैं। वे तब उत्पन्न हो सकते हैं जब आप डेटा प्रकारों और वर्गों की विशेषताओं को कॉल करने का प्रयास करते हैं जो उस विशेषता का समर्थन नहीं करते हैं जिसका आप उल्लेख कर रहे हैं।

ये त्रुटियां तब भी हो सकती हैं जब आप किसी विशेषता का जिक्र करते समय कोई गलती करते हैं। पायथन आपके कोड की व्याख्या इस प्रकार करेगा। यदि आप एक टाइपो बनाते हैं, तो यह पायथन को दिखाई देगा कि आप एक ऐसी विशेषता का उल्लेख कर रहे हैं जो मौजूद नहीं है।

उदाहरण के लिए, Python split() . का उपयोग करना सूची को विभाजित करने की विधि आम है। लेकिन, विभाजन () एक स्ट्रिंग विधि है और इसलिए इसका उपयोग किसी सूची को विभाजित करने के लिए नहीं किया जा सकता है।

आगे पढ़ने के लिए, निम्नलिखित त्रुटियों पर शोध करने पर विचार करें:

  • विशेषता त्रुटि:'सूची' ऑब्जेक्ट में कोई विशेषता नहीं है 'विभाजित'
  • विशेषता त्रुटि:'मॉड्यूल' ऑब्जेक्ट में कोई विशेषता नहीं है 'urlopen'

निष्कर्ष

जब एक अमान्य विशेषता का संदर्भ दिया जाता है तो पायथन में विशेषता त्रुटियां उठाई जाती हैं। इन त्रुटियों को हल करने के लिए, पहले जांचें कि आप जिस विशेषता को कॉल कर रहे हैं वह मौजूद है। फिर, सुनिश्चित करें कि विशेषता उस वस्तु या डेटा प्रकार से संबंधित है जिसके साथ आप काम कर रहे हैं।

यदि आप जो विशेषता चाहते हैं वह एक अंतर्निहित प्रकार से संबद्ध है और मौजूद नहीं है, तो आपको एक विकल्प की तलाश करनी चाहिए। एक डेटा प्रकार के लिए मौजूद कई विशेषताओं के विकल्प हैं जिनका उपयोग आप दूसरे डेटा प्रकार पर कर सकते हैं। उदाहरण के लिए, कोई विस्तार () नहीं है सेट के साथ विधि लेकिन आप उपयोग कर सकते हैं संघ () सेट में शामिल होने के लिए।

पायथन कोड लिखने के बारे में अधिक जानने के लिए, हमारी हाउ टू लर्न पायथन गाइड पढ़ें।


  1. पायथन हैलो वर्ल्ड:ए हाउ-टू गाइड

    पायथन हैलो वर्ल्ड प्रोग्राम आमतौर पर पहला प्रोग्राम होता है जिसे कोडर पायथन में लिखेगा। यह प्रोग्राम पायथन कंसोल पर एक स्ट्रिंग प्रदर्शित करने के लिए एक प्रिंट स्टेटमेंट का उपयोग करता है। कार्यक्रम इस तरह दिखता है:प्रिंट (हैलो वर्ल्ड)। यह सुनिश्चित करने के लिए कि आपका पायथन संस्करण काम करता है, सब

  1. पायथन में स्पष्ट () सेट करें

    इस ट्यूटोरियल में, हम सेट डेटा स्ट्रक्चर की क्लियर मेथड के बारे में जानेंगे। आइए देखें स्पष्ट . के बारे में विवरण विधि। विधि स्पष्ट का उपयोग सेट डेटा संरचना से सभी डेटा को साफ़ करने के लिए किया जाता है। सेट से सभी एलिमेंट्स क्लियर हो जाएंगे। और हम एक खाली सेट के साथ निकलेंगे। साफ़ देखने के लिए नीच

  1. पायथन में ऐड () सेट करें

    इस ट्यूटोरियल में, हम जोड़ें . के बारे में जानेंगे डेटा संरचना सेट करने की विधि। आइए ट्यूटोरियल में गोता लगाएँ। सेट करें डेटा संरचना इसमें अद्वितीय तत्वों को संग्रहीत करती है। जोड़ें सेट डेटा संरचना की विधि एक तत्व . लेती है और इसे सेट में जोड़ता है। सेट में एक नया तत्व जोड़ने के लिए नीचे दिए गए च