آموزش پارامتر self در پایتون
پارامتر self به نمونهی فعلی(current instance) از یک کلاس رجوع میکند.
از پارامتر self برای دسترسی به پروپرتیها و متدهایی که به یک کلاس تعلق دارند استفاده میشود.
مثال شماره 1
استفاده از self برای دسترسی به پروپرتیهای کلاس:
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
def greet(self):
print("Hello, my name is " + self.name)
p1 = Person("Emil", 25)
p1.greet()
نتیجه:
Hello, my name is Emil
امتحان کنیدنکته: پارامتر self باید بعنوان اولین پارامتر از هر متدی در کلاس تنظیم شود.
چرا از self استفاده کنیم؟
بدون self، پایتون نمیداند که شما قصد دارید به پروپرتیهای کدام آبجکت دسترسی داشته باشید:
مثال شماره 2
پارامتر self متد مورد نظر را به آبجکت خاصی پیوند(لینک) میدهد:
class Person:
def __init__(self, name):
self.name = name
def printname(self):
print(self.name)
p1 = Person("Tobias")
p2 = Person("Linus")
p1.printname()
p2.printname()
نتیجه:
Tobias
Linus
امتحان کنیدحرف خودمونی: پارامتر self یعنی میخواهم از کلاس فعلی به پروپرتیها دسترسی پیدا کنم.
حتماً لازم نیست self به صورت "self" نامیده شود
حتماً لازم نیست این پارامتر self نامیده شود، بلکه میتوانیم هر نامی که دوست داشته باشیم برای آن انتخاب کنیم، اما این کلمه حتماً باید بعنوان اولین پارامتر از هر متد، در کلاس مورد نظر استفاده شود:
مثال شماره 3
استفاده از myobject و abc به جای self:
class Person:
def __init__(myobject, name, age):
myobject.name = name
myobject.age = age
def greet(abc):
print("Hello, my name is " + abc.name)
p1 = Person("Emil", 36)
p1.greet()
نتیجه:
Hello, my name is Emil
امتحان کنیدنکته: با اینکه میتوانیم به جای کلمهی self از یک نام متفاوت استفاده کنیم، اما قویاً توصیه میکنیم که از self به همان صورت که در پایتون مرسوم است استفاده کنید؛ این کار باعث میشود کدهای ما برای دیگران خواناتر به نظر برسد.
دسترسی به پروپرتیها با استفاده از self
ما میتوانیم با استفاده از self به هر پروپرتی(property) از کلاس دسترسی پیدا کنیم:
مثال شماره 4
دسترسی به چند پروپرتی با استفاده از self:
class Car:
def __init__(self, brand, model, year):
self.brand = brand
self.model = model
self.year = year
def display_info(self):
print(f"{self.year} {self.brand} {self.model}")
car1 = Car("Toyota", "Corolla", 2020)
car1.display_info()
نتیجه:
2020 Toyota Corolla
امتحان کنیدفراخوانی متدها با self
ما همچنین میتوانیم با استفاده از پارامتر self ،دیگر متدهای درون کلاس را فراخوانی کنیم:
مثال شماره 5
فراخوانی یک متد در یک متد دیگر، با استفاده از self:
class Person:
def __init__(self, name):
self.name = name
def greet(self):
return "Hello, " + self.name
def welcome(self):
message = self.greet()
print(message + "! Welcome to our website.")
p1 = Person("Tobias")
p1.welcome()
نتیجه:
Hello, Tobias! Welcome to our website.
امتحان کنید
منبع: www.w3schools.com/python
- بازدید: 55
1. سعی کنید نظرات شما مرتبط با مقاله ی مورد نظر باشد، در غیر این صورت پاسخ داده نخواهد شد.
2. سوالات خود را به صورت کوتاه بیان کنید و از پرسیدن چند سوال به طور همزمان خودداری کنید.
3. سوال خود را به طور واضح بیان کنید و از کلمات مبهم استفاده نکنید.