मुख्य सामग्री पर जाएं
मॉड्यूल 7 · पाठ 1 का 4पाठ्यक्रम में 25/36~14 min
मॉड्यूल पाठ (1/4)

कक्षाएं और उदाहरण

ए वर्ग उन वस्तुओं को बनाने का एक खाका है जिनमें डेटा (विशेषताएं) हैं और व्यवहार (तरीके)। एक उदाहरण से निर्मित एक ठोस वस्तु है कक्षा.

न्यूनतम वाक्यविन्यास

Python
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 उस उदाहरण का संदर्भ है जिस पर विधि को बुलाया गया था। यह एक है कन्वेंशन (कोई कीवर्ड नहीं) और हमेशा उदाहरण का पहला पैरामीटर होता है तरीके.

Python
fido.abbaia()
# equivalente a Cane.abbaia(fido)
# Python passa fido come self automaticamente

उदाहरण बनाम वर्ग विशेषताएँ

Python
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'

एकाधिक विधियाँ और अवस्थाएँ

Python
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

आपकी बारी

व्यायाम#python.m7.l1.e1
प्रयास: 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 प्रयासों के बाद समाधान उपलब्ध है

व्यायाम की समीक्षा करें

व्यायाम#python.m7.l1.e2
प्रयास: 0लोड हो रहा है...

`BankAccount` को __init__(self, Balance=0) और `जमा(राशि)`, `निकासी(राशि)` के तरीकों से परिभाषित करें जो self.balance को संशोधित करते हैं। `a = BankAccount(100)` बनाएं, 50 जमा करें, 30 निकालें। `a.balance` का मूल्यांकन करें।

संपादक लोड हो रहा है...
संकेत दिखाएँ

स्व.शेष राशि += जमा राशि।

3 प्रयासों के बाद समाधान उपलब्ध है

अतिरिक्त चुनौती

व्यायाम#python.m7.l1.e3
प्रयास: 0लोड हो रहा है...

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 प्रयासों के बाद समाधान उपलब्ध है