মূল কন্টেন্টে যান
মডিউল 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()` মূল্যায়ন করুন।

সম্পাদক লোড হচ্ছে...
ইঙ্গিত দেখান

math.sqrt(self.x ** 2 + self.y ** 2)

সমাধান 3 প্রচেষ্টার পরে উপলব্ধ

ব্যায়াম পর্যালোচনা করুন

ব্যায়াম#python.m7.l1.e2
প্রচেষ্টা: 0লোড হচ্ছে...

__init__(self, balance=0) এর সাথে `BankAccount` সংজ্ঞায়িত করুন এবং `deposit(amount)`, `withdraw(amount)` যেগুলো self.balance পরিবর্তন করে। `a = BankAccount(100)` তৈরি করুন, 50 জমা করুন, 30 উত্তোলন করুন। `a.balance` মূল্যায়ন করুন।

সম্পাদক লোড হচ্ছে...
ইঙ্গিত দেখান

self.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 প্রচেষ্টার পরে উপলব্ধ