एक ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग भाषा के रूप में पायथन ऑब्जेक्ट्स पर जोर देता है। क्लासेस वह ब्लूप्रिंट हैं जिनसे ऑब्जेक्ट्स बनाए जाते हैं। पायथन में प्रत्येक क्लास में कई एट्रिब्यूट हो सकते हैं जिनमें फ़ंक्शन भी एक एट्रिब्यूट के रूप में शामिल है।
क्लास के एट्रिब्यूट एक्सेस करना
क्लास के एट्रिब्यूट की जाँच करने और उनमें हेरफेर करने के लिए, हम कई पायथन अंतर्निहित विधियों का उपयोग करते हैं जैसा कि नीचे दिखाया गया है।
getattr() - क्लास के एट्रिब्यूट को एक्सेस करने के लिए एक पायथन विधि।
hasattr() - क्लास में एट्रिब्यूट की उपस्थिति सत्यापित करने के लिए एक पायथन विधि।
setattr() - क्लास में एक अतिरिक्त एट्रिब्यूट सेट करने के लिए एक पायथन विधि।
नीचे दिया गया प्रोग्राम पायथन में क्लास एट्रिब्यूट एक्सेस करने के लिए उपरोक्त विधियों के उपयोग को चित्रित करता है।
उदाहरण
class StateInfo:
StateName = 'Telangana'
population = '3.5 crore'
def func1(self):
print("Hello from my function")
print(getattr(StateInfo, 'StateName'))
# यदि ऑब्जेक्ट में एट्रिब्यूट है तो True लौटाता है
print(hasattr(StateInfo, 'population'))
setattr(StateInfo, 'ForestCover', 39)
print(getattr(StateInfo, 'ForestCover'))
print(hasattr(StateInfo, 'func1'))
आउटपुट
Telangana True 39 True
क्लास के मेथड एक्सेस करना
क्लास के मेथड को एक्सेस करने के लिए, हमें क्लास को ऑब्जेक्ट में इंस्टेंटिएट करना होगा। फिर हम मेथड को क्लास के इंस्टेंस मेथड के रूप में एक्सेस कर सकते हैं जैसा कि नीचे दिए गए प्रोग्राम में दिखाया गया है। यहाँ self पैरामीटर के माध्यम से, इंस्टेंस मेथड उसी ऑब्जेक्ट पर एट्रिब्यूट और अन्य मेथड एक्सेस कर सकते हैं।
उदाहरण
class StateInfo:
StateName = 'Telangana'
population = '3.5 crore'
def func1(self):
print("Hello from my function")
print(getattr(StateInfo, 'StateName'))
print(hasattr(StateInfo, 'population'))
setattr(StateInfo, 'ForestCover', 39)
print(getattr(StateInfo, 'ForestCover'))
print(hasattr(StateInfo, 'func1'))
obj = StateInfo()
obj.func1()
आउटपुट
Telangana True 39 True Hello from my function
एक क्लास के मेथड को दूसरी क्लास से एक्सेस करना
एक क्लास के मेथड को दूसरी क्लास से एक्सेस करने के लिए, हमें कॉल की गई क्लास के इंस्टेंस को कॉलिंग क्लास में पास करना होगा। नीचे दिया गया उदाहरण दिखाता है कि यह कैसे किया जाता है।
उदाहरण
class ClassOne:
def m_class1(self):
print("Method in class 1")
# कॉलिंग क्लास को परिभाषित करना
class ClassTwo(object):
def __init__(self, c1):
self.c1 = c1
# कॉलिंग मेथड
def m_class2(self):
Object_inst = self.c1()
Object_inst.m_class1()
# ClassOne ऑब्जेक्ट को ClassTwo के तर्क के रूप में पास करना
obj = ClassTwo(ClassOne)
obj.m_class2()
आउटपुट
Method in class 1