به آموزشگاه مجازی سینا خوش آمدید!

آموزش پارامتر self در پایتون

امتیاز
(0)

پارامتر 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

 

  • بازدید: 56

نوشتن دیدگاه

لطفا نظرات خود را بیان کنید. به سوالات در سریع ترین زمان پاسخ داده خواهد شد.اما به نکات زیر توجه کنید:
1. سعی کنید نظرات شما مرتبط با مقاله ی مورد نظر باشد، در غیر این صورت پاسخ داده نخواهد شد.
2. سوالات خود را به صورت کوتاه بیان کنید و از پرسیدن چند سوال به طور همزمان خودداری کنید.
3. سوال خود را به طور واضح بیان کنید و از کلمات مبهم استفاده نکنید.

ارسال