मुझे कक्षा वर्ग में प्रवेश करने के लिए एक निर्देश मिलता है। व्यक्ति में एक फ़ील्ड है: 'नाम'। 'नाम' फ़ील्ड वैकल्पिक है, जिसका अर्थ है कि यदि निर्देश में 'नाम' आइटम नहीं है, तो व्यक्ति का कोई 'नाम' मान नहीं है। मैं इंस्टेंस विशेषता प्राप्त करने के लिए गेटर विधियों का उपयोग करता हूं, लेकिन यदि कोई 'नाम' मान नहीं है तो यह एक त्रुटि फेंक देगा। मुझे नहीं पता कि मेरे कोड को बेहतर बनाने के लिए कोई अच्छी प्रोग्रामिंग शैली है? चूंकि पाइथन रन टाइम पर इंस्टेंस फ़ील्ड बनाते हैं, इसलिए मुझे नहीं पता कि जावा जैसे गेटर का उपयोग कैसे करें।पायथन: उदाहरण विशेषता त्रुटि
class Person:
def __init__(self,person_dict):
try:
self.name = person_dict['name']
except Exception:
pass
def getName(self):
return self.name
pdict = {}
p = Person(pdict)
print p.getName()
AttributeError: व्यक्ति उदाहरण कोई विशेषता 'नाम'
जैसा कि आप पहले से ही जवाब में देख चुके हैं, गेटर्स 'पायथनिक' या अच्छे पायथन कोड नहीं हैं। [यहां] (http://tomayko.com/writings/getters-setters-fuxors) यह एक महान लेख है कि यह क्यों है। आलेख को सारांशित करने के लिए: जावा को हमेशा गेटर्स/सेटर्स की आवश्यकता होती है क्योंकि उनके बिना, उनका उपयोग करने के लिए प्रतिक्रिया करना कठिन होता है। पायथन के साथ, आप अपना इंटरफ़ेस नहीं बदलते हैं, क्योंकि आप [गुण] (http://docs.python.org/library/functions.html#property) का उपयोग कर सकते हैं। – Darthfett