في معظم لغات البرمجة لما بيكون عندك كلاس فيه private attribute ما… — Dibo — TG.ME

في معظم لغات البرمجة لما بيكون عندك كلاس فيه private attribute ما بتقدرش تدخل عليه من برة الكلاس ... الا بايثون!!

تعالي نشوف الكود دة

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
❤3
August 3, 2026 1.6K 2 2