मॉड्यूल पाठ (1/4)
कक्षाएं और उदाहरण
ए वर्ग उन वस्तुओं को बनाने का एक खाका है जिनमें डेटा (विशेषताएं) हैं और व्यवहार (तरीके)। एक उदाहरण से निर्मित एक ठोस वस्तु है कक्षा.
न्यूनतम वाक्यविन्यास
class Cane:
def __init__(self, nome, eta):
self.nome = nome
self.eta = eta
def abbaia(self):
return f"{self.nome} dice WOOF!"
# creazione di istanze
fido = Cane("Fido", 3)
luna = Cane("Luna", 5)
fido.nome # 'Fido'
fido.abbaia() # 'Fido dice WOOF!'__init__: "कन्स्ट्रक्टर"
जब आप एक बनाते हैं तो __init__ विधि को स्वचालित रूप से कहा जाता है
उदाहरण (Cane("Fido", 3))। इसका उपयोग विशेषताओं को आरंभ करने के लिए किया जाता है।
तकनीकी रूप से यह एक कंस्ट्रक्टर नहीं है (ऑब्जेक्ट पहले ही बनाया जा चुका है)।
__new__), लेकिन यह वह स्थान है जहां आप प्रारंभिक स्थिति निर्धारित करते हैं।
self: पहला पैरामीटर
self उस उदाहरण का संदर्भ है जिस पर विधि को बुलाया गया था। यह एक है
कन्वेंशन (कोई कीवर्ड नहीं) और हमेशा उदाहरण का पहला पैरामीटर होता है
तरीके.
fido.abbaia()
# equivalente a Cane.abbaia(fido)
# Python passa fido come self automaticamenteउदाहरण बनाम वर्ग विशेषताएँ
class Cane:
specie = "Canis familiaris" # attributo di CLASSE (condiviso)
def __init__(self, nome):
self.nome = nome # attributo di ISTANZA (per ognuno)
fido = Cane("Fido")
luna = Cane("Luna")
fido.nome # 'Fido' (istanza)
luna.nome # 'Luna' (istanza)
fido.specie # 'Canis familiaris' (cercato sulla classe)
Cane.specie # 'Canis familiaris'एकाधिक विधियाँ और अवस्थाएँ
class Contatore:
def __init__(self, inizio=0):
self.valore = inizio
def incrementa(self, di=1):
self.valore += di
def reset(self):
self.valore = 0
c = Contatore()
c.incrementa()
c.incrementa(di=5)
c.valore # 6
c.reset()
c.valore # 0आपकी बारी
__init__(self, x, y) के साथ एक वर्ग `प्वाइंट` को परिभाषित करें जो विशेषताओं को संग्रहीत करता है। एक विधि `distance_from_origin` जोड़ें जो x^2 + y^2 का वर्गमूल लौटाए। `p = प्वाइंट(3, 4)` बनाएं और `p.distance_from_origin()` का मूल्यांकन करें।
संकेत दिखाएँ
गणित.वर्ग(self.x ** 2 + self.y ** 2)
3 प्रयासों के बाद समाधान उपलब्ध है
व्यायाम की समीक्षा करें
`BankAccount` को __init__(self, Balance=0) और `जमा(राशि)`, `निकासी(राशि)` के तरीकों से परिभाषित करें जो self.balance को संशोधित करते हैं। `a = BankAccount(100)` बनाएं, 50 जमा करें, 30 निकालें। `a.balance` का मूल्यांकन करें।
संकेत दिखाएँ
स्व.शेष राशि += जमा राशि।
3 प्रयासों के बाद समाधान उपलब्ध है
अतिरिक्त चुनौती
Define a class `Rectangle` with a constructor `__init__(self, width, height)` to set width and height, and a method `area(self)` that returns the product of width and height. Instantiate a rectangle with width `4` and height `5` storing it in `rect`, and evaluate `rect.area()`.
संकेत दिखाएँ
क्षेत्र (स्वयं) के अंदर विशेषताओं तक पहुंचने के लिए स्वयं का उपयोग करना याद रखें।
3 प्रयासों के बाद समाधान उपलब्ध है