ماڈیول اسباق (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()` کا اندازہ کریں۔
اشارہ دکھائیں۔
math.sqrt(self.x ** 2 + self.y ** 2)
3 کوششوں کے بعد حل دستیاب ہے۔
ورزش کا جائزہ لیں۔
__init__(self, balance=0) کے ساتھ `BankAccount` کی تعریف کریں اور طریقوں `deposit(ramount)`, `withdraw(ramount)` جو self.balance میں ترمیم کرتے ہیں۔ `a = BankAccount(100)` بنائیں، 50 جمع کریں، 30 نکالیں۔ `a.balance` کا اندازہ کریں۔
اشارہ دکھائیں۔
self.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 کوششوں کے بعد حل دستیاب ہے۔