हां, पोस्ट किए गए मूल उदाहरण के लिए, संपत्ति ठीक उसी तरह काम करेगी जैसे कि केवल एक उदाहरण चर 'x' है।
यह अजगर के गुणों के बारे में सबसे अच्छी बात है। बाहर से, वे उदाहरण चर की तरह काम करते हैं! जो आपको कक्षा के बाहर से उदाहरण चर का उपयोग करने की अनुमति देता है।
इसका मतलब यह है कि आपका पहला उदाहरण वास्तव में एक उदाहरण चर का उपयोग कर सकता है। यदि चीजें बदल गईं, और फिर आप अपने कार्यान्वयन को बदलने का फैसला करते हैं और एक संपत्ति उपयोगी होती है, तो संपत्ति का इंटरफ़ेस अभी भी कक्षा के बाहर कोड से समान होगा। उदाहरण चर से संपत्ति में परिवर्तन का कक्षा के बाहर कोड पर कोई प्रभाव नहीं पड़ता है।
कई अन्य भाषाएं और प्रोग्रामिंग पाठ्यक्रम निर्देश देंगे कि एक प्रोग्रामर को कभी भी उदाहरण चर का पर्दाफाश नहीं करना चाहिए, और इसके बजाय किसी भी मूल्य के लिए 'गेटर्स' और 'सेटलर्स' का उपयोग करना चाहिए, यहां तक कि प्रश्न में उद्धृत सरल मामला भी।
कई भाषाओं (जैसे जावा) के उपयोग के साथ कक्षा के बाहर कोड
object.get_i()
#and
object.set_i(value)
#in place of (with python)
object.i
#and
object.i = value
और जब कक्षा को लागू करते हैं तो कई 'गेटर्स' और 'सेटलर्स' होते हैं जो आपके पहले उदाहरण के समान होते हैं: एक सरल उदाहरण चर को दोहराते हैं। इन गेटर्स और सेटर की आवश्यकता होती है क्योंकि यदि क्लास कार्यान्वयन लागू होता है, तो क्लास के बाहर के सभी कोड को बदलने की आवश्यकता होगी। लेकिन अजगर गुण वर्ग के बाहर कोड को चर चर के समान होने की अनुमति देते हैं। इसलिए यदि आप एक संपत्ति जोड़ते हैं, या एक साधारण उदाहरण चर है, तो कक्षा के बाहर कोड को बदलने की आवश्यकता नहीं है। इसलिए अधिकांश ऑब्जेक्ट ओरिएंटेड भाषाओं के विपरीत, अपने सरल उदाहरण के लिए आप 'गेटर्स' और 'सेटलर्स' के बजाय उदाहरण चर का उपयोग कर सकते हैं, जिनकी वास्तव में आवश्यकता नहीं है, इस ज्ञान में सुरक्षित है कि यदि आप भविष्य में किसी संपत्ति में बदलते हैं, तो कोड का उपयोग कर आपकी कक्षा को बदलने की आवश्यकता नहीं है।
इसका मतलब है कि आपको केवल जटिल व्यवहार होने पर गुणों को बनाने की आवश्यकता है, और बहुत ही सामान्य सरल मामले के लिए, जहां प्रश्न में वर्णित है, एक सरल उदाहरण चर वह सब है जिसकी आवश्यकता है, आप बस उदाहरण चर का उपयोग कर सकते हैं।