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)

பயிற்சி

குறியீட்டை வழங்குவதற்கு விடுபட்ட பகுதிகளைச் செருகவும்: John(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__() முறை வெளியீட்டை வடிவமைக்கிறது