استاد self چی رو برای ما برمیگردونه؟ اگه میشه یک توضیح مختصر و ساده برای من بدید
در واقع این بخش در فیلم توضیح دادند استاد اما اگر بخوام بگم دقیقا چی رو بر میگردونه self همان instance است که توضیحات مفصلی دارد و با سه خط قابل توضیح نیستند
با سلام.
از self برای اشاره به نمونه (instance) های یک class استفاده می شود.
با استفاده از آن به Attribute ها و Method های کلاس دسترسی خواهید داشت.
در واقع Attribute ها را با Argument های داده شده مرتبط می کند (Bind).
self باید همیشه به عنوان اولین Argument وارد شود و بعد سایر آرگومانها قرار گیرند.
class Car():
# init method or constructor
def __init__(self, car_name, car_model):
self.name = car_name
self.model = car_model
def show(self):
print("Car Name: ", self.name)
print("Model: ", self.model )
car1 = Car("BMW", "2021")
car2 = Car("Mercedes", "S-Class 2021")
car1.show()
car2.show()
# Output:
Car Name: BMW
Model: 2021
Car Name: Mercedes
Model: S-Class 2021
مثلا در نمونه ی فوق، self.name به car_name اصطلاحاً bind شده است.
هنگامی که object ی از کلاس cars می سازیم (مثلا car1)، در درون کلاس، اولاً تخصیص دهی مقادیر نام و مدل در متد init صورت گرفته و بوسیله ی متد show و استفاده از self می گوییم که هر گاه نمونه ای (object ای) از این کلاس ساخته شد، چگونه نام و مدل آن آنرا نمایش دهد.
self یک Convention (قرارداد) در Python است و نه یک Keyword یعنی می توانید به جای self مثلاً test یا هر چیز دیگری قرار دهید. اما برای خوانایی بیشتر کدها و رعایت قوانین Clean Code بهتر است از self استفاده کنید.
class Not_Using_Self:
def show(test):
print("Change self to test,"
"You can use a different word!")
object = Not_Using_Self()
object.show()
# Output:
Change self to test, You can use a different word!در مثال فوق نیز به جای self از کلمه test استفاده کردیم و نتیجه مثل استفاده از self است.
البته می دانم که توضیحاتم خیلی کامل نیست اما امیدوارم که با مفهوم self ارتباط بیشتری برقرار کرده باشید.
موفق باشید.