Python Class Methods

পাইথন ক্লাস পদ্ধতি

ক্লাস পদ্ধতি

পদ্ধতি হল একটি শ্রেণীর অন্তর্গত ফাংশন। তারা ক্লাস থেকে তৈরি বস্তুর আচরণ সংজ্ঞায়িত করে।

উদাহরণ

একটি ক্লাসে একটি পদ্ধতি তৈরি করুন:

class Person:
  def __init__(self, name):
    self.name = name

  def greet(self):
    print("Hello, my name is " + self.name)

p1 = Person("Emil")
p1.greet()

📝দ্রষ্টব্য:

প্রথম প্যারামিটার হিসাবে সমস্ত পদ্ধতিselfথাকা উচিত

পরামিতি সহ পদ্ধতি

পদ্ধতিগুলি নিয়মিত ফাংশনের মতো পরামিতিগুলি গ্রহণ করতে পারে:

উদাহরণ

প্যারামিটার সহ পদ্ধতি তৈরি করুন:

class Calculator:
  def add(self, a, b):
    return a + b

  def multiply(self, a, b):
    return a * b

calc = Calculator()
print(calc.add(5, 3))
print(calc.multiply(4, 7))

পদ্ধতি বৈশিষ্ট্য অ্যাক্সেস

পদ্ধতিselfঅবজেক্টের বৈশিষ্ট্যগুলি ব্যবহার করে অ্যাক্সেস এবং পরিবর্তন করা যেতে পারে:

উদাহরণ

বস্তুর বৈশিষ্ট্য অ্যাক্সেস করার পদ্ধতি:

class Person:
  def __init__(self, name, age):
    self.name = name
    self.age = age

  def get_info(self):
    return f"{self.name} is {self.age} years old"

p1 = Person("Tobias", 28)
print(p1.get_info())

পদ্ধতি বৈশিষ্ট্য পরিবর্তন

পদ্ধতি একটি বস্তুর বৈশিষ্ট্য পরিবর্তন করতে পারেন:

উদাহরণ

একটি বৈশিষ্ট্য মান পরিবর্তন করার পদ্ধতি:

class Person:
  def __init__(self, name, age):
    self.name = name
    self.age = age

  def celebrate_birthday(self):
    self.age += 1
    print(f"Happy birthday! You are now {self.age}")

p1 = Person("Linus", 25)
p1.celebrate_birthday()
p1.celebrate_birthday()

__str__() পদ্ধতি

__str__()একটি পদ্ধতি হল একটি বিশেষ পদ্ধতি যা নিয়ন্ত্রণ করে যে বস্তুটি মুদ্রিত হলে কী ফেরত দেওয়া হবে:

উদাহরণ

__str__()পদ্ধতি ছাড়া:

class Person:
  def __init__(self, name, age):
    self.name = name
    self.age = age

p1 = Person("Emil", 36)
print(p1)

উদাহরণ

__str__()পদ্ধতিগতভাবে:

class Person:
  def __init__(self, name, age):
    self.name = name
    self.age = age

  def __str__(self):
    return f"{self.name} ({self.age})"

p1 = Person("Tobias", 36)
print(p1)

⚠️গুরুত্বপূর্ণ:

__str__()পদ্ধতিটি সর্বদা একটি স্ট্রিং প্রদান করা উচিত। এটি বস্তুর একটি মানব-পাঠযোগ্য বর্ণনা প্রদান করতে ব্যবহৃত হয়।

অনেক পদ্ধতি

একটি ক্লাসে একাধিক পদ্ধতি থাকতে পারে যা একসাথে কাজ করে:

উদাহরণ

একটি ক্লাসে একাধিক পদ্ধতি তৈরি করুন:

class Playlist:
  def __init__(self, name):
    self.name = name
    self.songs = []

  def add_song(self, song):
    self.songs.append(song)
    print(f"Added: {song}")

  def remove_song(self, song):
    if song in self.songs:
      self.songs.remove(song)
      print(f"Removed: {song}")

  def show_songs(self):
    print(f"Playlist '{self.name}':")
    for song in self.songs:
      print(f"- {song}")

my_playlist = Playlist("Favorites")
my_playlist.add_song("Bohemian Rhapsody")
my_playlist.add_song("Stairway to Heaven")
my_playlist.show_songs()

মুছে ফেলার পদ্ধতি

delকীওয়ার্ড ব্যবহার করে একটি ক্লাস থেকে পদ্ধতিগুলি সরানো যেতে পারে:

উদাহরণ

ক্লাস থেকে পদ্ধতি সরান:

class Person:
  def __init__(self, name):
    self.name = name

  def greet(self):
    print("Hello!")

p1 = Person("Emil")

del Person.greet

p1.greet() # This will cause an error

💡দ্রষ্টব্য:

ওভাররাইড পদ্ধতি ব্যাপকভাবে ব্যবহৃত হয় না, কিন্তু ক্লাস সংজ্ঞা পরিবর্তন করার একটি উপায় প্রদান করে। সাধারণত এই সুপারিশ করা হয় না.

আরো উদাহরণ

উদাহরণ

ব্যাঙ্ক অ্যাকাউন্ট ক্লাস:

class BankAccount:
  def __init__(self, account_holder, balance=0):
    self.account_holder = account_holder
    self.balance = balance

  def deposit(self, amount):
    self.balance += amount
    return f"Deposited ${amount}. New balance: ${self.balance}"

  def withdraw(self, amount):
    if amount <= self.balance:
      self.balance -= amount
      return f"Withdrew ${amount}. New balance: ${self.balance}"
    else:
      return "Insufficient funds"

  def __str__(self):
    return f"Account holder: {self.account_holder}, Balance: ${self.balance}"

account = BankAccount("John", 1000)
print(account.deposit(500))
print(account.withdraw(200))
print(account)

অনুশীলন করুন

কোড দিতে অনুপস্থিত অংশ সন্নিবেশ করুন: জন(36):

class Person:
   def __init__(self, name, age):
    self.name = name
    self.age = age
  def __str__(self):
    return f'{self.name}({self.age})'
p1 = Person('John', 36)
print(p1)
def __init__(self, name, age):
def print(self):
return f'{name}(age)'
✗ ভুল!selfবৈশিষ্ট্যগুলি অবশ্যই , এবং বিশেষ পদ্ধতি ব্যবহার করে অ্যাক্সেস করতে হবে__str__()হওয়া উচিত
def init(self, name, age):
def show(self):
return f'{self.name}({self.age})'
✗ ভুল!__init__এবং__str__পদ্ধতিতে অবশ্যই ডবল আন্ডারস্কোর থাকতে হবে
def __init__(self, name, age):
def __str__(self):
return f'{self.name}({self.age})'
✓ ঠিক আছে!__init__()পদ্ধতিটি , এবং এর প্রাথমিক মান সেট করে__str__()পদ্ধতির আউটপুট ফরম্যাট করে