آموزش متدهای کلاس در پایتون
متدها درواقع تابعهایی هستند که به یک کلاس تعلق دارند. آنها رفتار اشیاء ایجاد شده از کلاس را تعریف میکنند.
مثال شماره 1
ایجاد یک متد در یک کلاس:
class Person:
def __init__(self, name):
self.name = name
def greet(self):
print("Hello, my name is " + self.name)
p1 = Person("Emil")
p1.greet()
نتیجه:
Hello, my name is Emil
امتحان کنیدنکته: تمام متدها باید از کلمهی self بعنوان اولین پارامتر خود استفاده کنند.
متدها به همراه پارامترها
متدها میتوانند مانند تابعهای عادی، پارامترهایی را دریافت کنند:
مثال شماره 2
ایجاد یک متد به همراه پارامترها:
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))
نتیجه:
8
28
امتحان کنیددسترسی متدها به پروپرتیها
متدها میتوانند به پروپرتیهای آبجکت با استفاده از کلمهی کلیدی self دسترسی داشته باشند و آنها را اصلاح کنند(تغییر دهند):
مثال شماره 3
یک متد که به پروپرتیهای آبجکت دسترسی دارد:
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())
نتیجه:
Tobias is 28 years old
امتحان کنیدمتدهایی که پروپرتیها را تغییر میدهند
متدها میتوانند پروپرتیهای یک آبجکت را تغییر دهند(اصلاح کنند):
مثال شماره 4
یک متد که مقدار یک پروپرتی را تغییر میدهد:
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()
نتیجه:
Happy birthday! You are now 26
Happy birthday! You are now 27
امتحان کنیدبررسی متد __str__()
متد __str__() یک متد خاص است که کنترل میکند که وقتی آبجکت پرینت میشود، چه چیزی برگردانده(return) شده است:
مثال شماره 5
بدون متد __str__():
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
p1 = Person("Emil", 36)
print(p1)
نتیجه:
<__main__.Person object at 0x15039e602100>
امتحان کنیدمثال شماره 6
با متد __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)
نتیجه:
Tobias (36)
امتحان کنیداستفاده از چند متد
یک کلاس میتواند چند متد داشته باشد که در کنار هم کار کنند:
مثال شماره 7
ایجاد چند متد در یک کلاس:
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()
نتیجه:
Added: Bohemian Rhapsody
Added: Stairway to Heaven
Playlist 'Favorites':
- Bohemian Rhapsody
- Stairway to Heaven
امتحان کنیدحذف کردن متدها(Delete)
ما میتوانیم با استفاده از کلمهی کلیدی dal متدها را از کلاسها حذف کنیم:
مثال شماره 8
حذف کردن یک متد از یک کلاس:
class Person:
def __init__(self, name):
self.name = name
def greet(self):
print("Hello!")
p1 = Person("Emil")
del Person.greet
p1.greet() # این یک خطا ایجاد می کند
نتیجه:
Traceback (most recent call last):
File "demo_class_method_delete.py", line 12, in <module>
AttributeError: 'Person' object has no attribute 'greet'
امتحان کنید
منبع: www.w3schools.com/python
- بازدید: 24
1. سعی کنید نظرات شما مرتبط با مقاله ی مورد نظر باشد، در غیر این صورت پاسخ داده نخواهد شد.
2. سوالات خود را به صورت کوتاه بیان کنید و از پرسیدن چند سوال به طور همزمان خودداری کنید.
3. سوال خود را به طور واضح بیان کنید و از کلمات مبهم استفاده نکنید.