متد در پایتون یک تابع است که به شیء تعلق دارد. متدها برای انجام عملیات بر روی دادههای شیء یا تغییر در حالت شیء استفاده میشوند.
تعریف متد:
برای تعریف متد از کلمه کلیدی def
استفاده میشود.
class Person:
# ویژگیها
name = ""
age = ۰
# روشها
def greet(self):
print(f"Hello, my name is {self.name}")
def set_age(self, new_age):
self.age = new_age
person1 = Person()
person1.name = "John Doe"
person1.age = ۳۰
person1.greet()
person1.set_age(۲۵)
print(person1.age)
در این مثال، دو متد به نامهای greet
و set_age
برای کلاس Person
تعریف شده است. متد greet
اطلاعات مربوط به شخص را چاپ میکند و متد set_age
سن شخص را تغییر میدهد.
انواع متدها:
- متدهای مخفی: متدهایی که با دو خط زیر (_) شروع میشوند.
- متدهای کلاس: متدهایی که به کلاس تعلق دارند و نه به اشیاء.
- متدهای استاتیک: متدهایی که نیازی به this (self) ندارند.
مثال کاربردی:
فرض کنید میخواهیم برنامهای بنویسیم که اطلاعات مربوط به دانشآموزان را ذخیره و مدیریت کند. برای این کار، میتوانیم از متدها برای انجام عملیات مختلف بر روی اشیاء دانشآموز استفاده کنیم.
class Student:
# ویژگیها
name = ""
grade = ۰
# روشها
def study(self):
print(f"{self.name} is studying")
def take_exam(self):
print(f"{self.name} is taking an exam")
def get_grade(self):
return self.grade
student1 = Student()
student1.name = "John Doe"
student1.grade = ۱۰
student2 = Student()
student2.name = "Jane Doe"
student2.grade = ۱۱
student1.study()
student2.take_exam()
print(student1.get_grade())
print(student2.get_grade())
در این مثال، سه متد به نامهای study
، take_exam
و get_grade
برای کلاس Student
تعریف شده است. متد study
نشان میدهد که دانشآموز در حال درس خواندن است، متد take_exam
نشان میدهد که دانشآموز در حال امتحان دادن است و متد get_grade
نمره دانشآموز را برمیگرداند.
نکات:
- میتوان از آرگومانها در هنگام تعریف متدها استفاده کرد.
- میتوان از متغیرهای محلی در داخل متدها استفاده کرد.
- میتوان از متدهای توکار پایتون در داخل متدها استفاده کرد.
- میتوان از docstring برای توضیح عملکرد متدها استفاده کرد.