क्लास ऑब्जेक्ट दो प्रकार के ऑपरेशन का समर्थन करते हैं: संदर्भ और इंस्टेंटेशन को विशेषता देते हैं
विशेषता संदर्भ पायथन में सभी विशेषता संदर्भों के लिए उपयोग किए गए मानक सिंटैक्स का उपयोग करते हैं: obj.name। मान्य विशेषता नाम वे सभी नाम हैं जो कक्षा के नामस्थान में तब थे जब क्लास ऑब्जेक्ट बनाया गया था। तो, अगर वर्ग परिभाषा इस तरह दिखती है:
class MyClass:
"""A simple example class"""
i = 12345
def f(self):
return 'hello world'
फिर MyClass.i
और MyClass.f
मान्य विशेषता संदर्भ हैं, क्रमशः एक पूर्णांक और एक फ़ंक्शन ऑब्जेक्ट लौटाते हैं। वर्ग विशेषताओं को भी सौंपा जा सकता है, इसलिए आप MyClass.i
असाइनमेंट के मूल्य को बदल सकते हैं । __doc__
एक मान्य विशेषता भी है, वर्ग से संबंधित डॉकस्ट्रिंग को वापस करना: "एक सरल उदाहरण वर्ग"।
क्लास इंस्टेंटेशन फंक्शन नोटेशन का उपयोग करता है। बस बहाना है कि क्लास ऑब्जेक्ट एक पैरामीटर रहित फ़ंक्शन है जो क्लास का एक नया उदाहरण देता है। उदाहरण के लिए:
x = MyClass()
इन्स्टेन्शियशन आपरेशन ( "को" एक वर्ग वस्तु) एक खाली वस्तु बनाता है। कई वर्ग एक विशिष्ट प्रारंभिक अवस्था में अनुकूलित उदाहरणों के साथ ऑब्जेक्ट बनाना पसंद करते हैं। इसलिए एक वर्ग __init__()
इस तरह नामित एक विशेष विधि को परिभाषित कर सकता है :
def __init__(self):
self.data = []
जब कोई वर्ग किसी __init__()
विधि को परिभाषित करता है , तो क्लास-इंस्टेंटेशन स्वचालित रूप __init__()
से नव-निर्मित क्लास इंस्टेंस के लिए आमंत्रित करता है । तो इस उदाहरण में, एक नया, प्रारंभिक उदाहरण प्राप्त किया जा सकता है:
x = MyClass()
बेशक, __init__()
विधि में अधिक लचीलेपन के लिए तर्क हो सकते हैं। उस स्थिति में, क्लास इंस्टेंटिएशन ऑपरेटर को दिए गए तर्कों को पारित कर दिया जाता है __init__()
। उदाहरण के लिए,
class Complex:
def __init__(self, realpart, imagpart):
self.r = realpart
self.i = imagpart
x = Complex(3.0, -4.5)
x.r, x.i
आधिकारिक दस्तावेज से लिया गया , जिसने मुझे अंत में सबसे अधिक मदद की।
यहाँ मेरा उदाहरण है
class Bill():
def __init__(self,apples,figs,dates):
self.apples = apples
self.figs = figs
self.dates = dates
self.bill = apples + figs + dates
print ("Buy",self.apples,"apples", self.figs,"figs
and",self.dates,"dates.
Total fruitty bill is",self.bill," pieces of fruit :)")
जब आप वर्ग विधेयक का उदाहरण बनाते हैं:
purchase = Bill(5,6,7)
आपको मिला:
> Buy 5 apples 6 figs and 7 dates. Total fruitty bill is 18 pieces of
> fruit :)
x = 'Hello'
बाहर init डाल लेकिन वर्ग के अंदर? क्या यह जावा की तरह है जहाँ यह समान है, या क्या यह एक स्थिर वैरिएबल की तरह हो जाता है जो केवल एक बार आरंभिक होता है?