فرق بین @name و self.name در روبی چیست ؟

سلام روبی کاران عزیز
یه سوالی واسم پیش اومده . خیلی تو فروم های خارجی گشتم
مطالب خوبی هم نوشته بودن ولی من واقعیتش نمیفهمم .
فرق بین @name و self.name تو روبی رو نمیتونم درک کنم
خیلی جاها نوشتن یکیش مستقیم دسترسی داره یکیش غیر مستقیم
ولی من مشکلم همینه که فرق مستقیم و غیر مستقیم رو متوجه نمیشم
چه زمانی از @ استفاده میشه و چه زمانی از self ؟
آیا برتری نسبت به هم دارن ؟
یه توضیح بدید واقعا ممنون میشم

[email protected] یه instance variable هست. و self.name داره متد name رو از instance فعلی صدا می زنه

ممنونم بابت پاسخ
میشه بگید کی از @ استفاده میشه و کی از self?

کی بستگی به برنامه و برنامه نویس داره. ولی فرقش مثل صدا زدن فانکشن و استفاده از یه متغییر هستش

من پایتون کار کردم و تازه اومدم سر روبی
احیانا مثال پایتونی داره این موضوع ؟؟ شاید فرقش رو اینطوری بتونم درک کنم
الان تنها سوالم اینکه برنامه نویس کی از @ و کی از self استفاده میکنه ؟

توی پایتون [email protected] مثل این می مونه:

self.name = "asdasd"
self.name

و self.name که در واقع صدا زدن وانکشن name هست اینجوری هست تو پایتون:

def name(self):
...

self.name()
1 پسندیده