حالت آفلاین — محتوا از حافظهٔ کش نمایش داده می‌شود
آموزش پایتون پروژه‌محور؛ قسمت سوم: شیءگرایی تا ساخت برنامه

public، protected و private در پایتون به زبان ساده

بررسی و تغییر ویژگی‌ها با property و staticmethod · 0٪

در پایتون، اسم ویژگی می‌تونه نشون بده چطور باید ازش استفاده کنیم:

  • public: اسم معمولی مثل name؛ برای استفاده بیرون کلاس هم در نظر گرفته شده.
  • یک زیرخط: اسمی مثل _note یعنی «برای استفاده داخلی کلاس». گاهی بهش protected می‌گن، ولی پایتون جلوی دسترسی بیرونی رو نمی‌گیره.
  • دو زیرخط در اول: اسمی مثل __token، بدون دو زیرخط در انتها، داخل کلاس تغییر نام می‌ده. مثلاً در کلاس Profile به _Profile__token تبدیل می‌شه. اسم این کار name mangling هست و کمک می‌کنه اسم‌ها در ارث‌بری کمتر با هم تداخل داشته باشن.

این اسم‌گذاری‌ها رمز رو امن نمی‌کنن و جلوی دسترسی به داده رو نمی‌گیرن. مثال زیر همین موضوع رو نشون می‌ده. در کد خودت، از ویژگی‌ها و متدهایی استفاده کن که برای بیرون کلاس در نظر گرفته شدن.

class Profile:
    def __init__(self, name):
        self.name = name
        self._note = "برای استفادهٔ داخلی"
        self.__token = "demo"

profile = Profile("آوا")
print(profile.name)
print(profile._note)
print(profile._Profile__token)

نام‌هایی مانند __init__ دو طرفشون دو زیرخط دارن و از اسم‌های ویژه پایتون هستن؛ اون‌ها رو با private اشتباه نگیر.

فعالیت شما

تفاوت قرارداد نام‌گذاری، name mangling و امنیت رو توضیح بده.

مطالعهٔ این گام برای همه آزاد است

برای پاسخ‌دادن، بررسی پاسخ، ثبت پیشرفت و استفاده از دستیار باید شرایط شرکت در فعالیت‌ها را داشته باشید.

برای انجام فعالیت وارد شوید

فعالیت‌های این بخش به اشتراک فعال نیاز دارند. تهیهٔ اشتراک

برای انجام فعالیت‌ها ابتدا این دوره‌های پیش‌نیاز را تکمیل کنید:

کد اولیهٔ فعالیت

class Profile:
    def __init__(self, name):
        self.name = name
        self._note = "برای استفادهٔ داخلی"
        self.__token = "demo"

profile = Profile("آوا")
print(profile.name)
print(profile._note)
print(profile._Profile__token)