تعالي نشوف الكود دة
class Example:
def __init__(self, name):
self.__name = name
استخدام
__ قبل اسم ال attribute بيخليه برايفت وما تقدرش تستخدمه ولا تعدل عليه من برة الكلاس .. المفروض يعني!example = Example("private name")
example.__name # AttributeErrorلو حاولت تستخدمه هيرزعك واحدة
AttributeError علي اساس انه برايفت وكدة وماحدش يقدر يستخدمه ... بس علي مين!!جرب الكود دة عندك
example._Example__name # 'pribvate name'
بل وتقدر تعدل عليه كمان
example._Example_name = "public"
اللي بيحصل ورا الكواليس انك لما بتضيف
__ قبل اسم الattribute عشان تخليه برايفيت, بايثون بتعمل حاجة اسمها name mangling يعني تشويه للاسم وبياخد الصيغة دي_ClassName__attributeName
