अजगर जादुई एक कंटेनर वस्तु जब नहीं बनाएगा आप इसे गुणों को असाइन करना प्रारंभ करते हैं, और यदि मैटलैब इसे अनुमति देता है, तो मैं matlab को बुरी तरह टूटा मानता हूं। इस पर विचार करें:
person.name = "Mike"
persom.age = 25
person.sex = "Male"
अब हम दो वस्तुओं, person
और persom
, और person
है age
, नहीं है और कोई संकेत है कि यह हुआ था। बाद में आप person.age
प्रिंट करने का प्रयास करते हैं, और कोई उम्मीद करेगा कि मैटलैब शिकायत करेगा ... वास्तविक गलती के बाद दो पृष्ठ।
एक कक्षा को स्वयं कंटेनर या नामस्थान के रूप में उपयोग किया जा सकता है। इसे तुरंत चालू करने की कोई आवश्यकता नहीं है, और यदि आप केवल गुणों का बंडल चाहते हैं तो यह आपको थोड़ा सा टाइपिंग बचाएगा।
class sex:
male = "M"
female = "F"
class person:
name = "Mike"
age = 25
sex = sex.male
पहुंच सकता है या इनमें से किसी भी संशोधित करने के लिए आप person.name
उपयोग कर सकते हैं, आदि
N.B. मैंने sex
के लिए कक्षा का उपयोग किया ताकि साथ ही ऐसा करने के लाभों में से एक को समझाया जा सके: यह डेटा मानों में स्थिरता प्रदान करता है (याद नहीं है कि आपने "एम" या "पुरुष" या "पुरुष" का उपयोग किया है या नहीं और टाइपो को पकड़ता है (यानी पायथन शिकायत करेगा sex.mlae के बारे में लेकिन स्ट्रिंग "mlae" के बारे में नहीं और यदि आप बाद में इसे "नर" के खिलाफ जांच रहे थे तो बाद में असफल हो जाएगा)।
बेशक, आप अभी भी इस प्रकार की कक्षा परिभाषा में गलत वर्तनी name
, age
, या sex
का जोखिम चलाते हैं। तो आप क्या कर सकते हैं कक्षा को टेम्पलेट के रूप में उपयोग करें और इसे तुरंत चालू करें।
class Person:
def __init__(self, name, age=None, sex=None):
self.name, self.age, self.sex = name, age, sex
अब जब आप कार्य करें:
person = Person("Mike", 25, sex.male)
या यदि आप दस्तावेज़ के लिए क्या उन सभी मापदंडों हैं हैं:
person = Person("Mike", age=25, sex=sex.male)
यह एक वस्तु के साथ समाप्त करने के लिए काफी असंभव है कि एक गलत वर्तनी विशेषता नाम है। यदि आप इसे गड़बड़ करते हैं, तो पाइथन आपको उस गलती पर एक त्रुटि संदेश देगा जिस पर आपने गलती की थी। इस तरह से ऐसा करने का सिर्फ एक कारण है।
मैटलैब का दृष्टिकोण बहुत कम समझ में आता है। आप पाइथन में ऐसा कुछ क्यों करना चाहते हैं? पाइथन भाषा नियमों के बाद पाइथन में चीजों को करने में क्या गलत है? पायथन पर एक अलग भाषा के नियम लगाने का प्रयास क्यों करें? –
हाय एसएलओटी, नीचे की तरह की प्रतिक्रिया पर मेरी टिप्पणी देखें। – mikeP
आप वास्तव में एक पाइथन शब्दकोश –