Pythonda _ və __ arasındakı fərq nədir?


cavab 1:

Nəzəriyyə baxımından bunlar sadəcə adi dəyişkən adlardır. Şərti olaraq, maraq altına alınmayan bir dəyişən kimi tək alt alt istifadə olunur. Məsələn, əgər bir funksiya bir vuruşu qaytarırsa və yalnız bir elementlə maraqlanırsınızsa, digər elementi pitonik olaraq rədd edə bilərsiniz:

_, x = əyləncəli ()

Bəzi sənətkarlarda _ və __ xüsusi mənalara malikdirlər və əvvəlki qiymətləndirmələrin dəyərlərini saxlayırlar.

Python'u öyrənmək haqqında məlumatı https://hackr.io/tutorials/learn ...


cavab 2:

Sadə aparıcı vurğulayır: Dəyişənləri, funksiyaları, metodları və sinifləri xüsusi olaraq qeyd edin

Cüt aparıcı vurğulayır: Bu "qarışdırma" adlı bir konsepsiya təqdim edir. Bu şəkildə Python təfsiri, miras qaldıqda atribut adlarını fərqləndirə bilər (əgər superklass və alt sinifdə iki atribut eyni ada sahibdirsə). Bu _Classname-i __manglingVariable və __Classname__manglingVariable əlavə edir.

Bəzi insanlar "həqiqətən özəl" kimi istifadə edirlər, amma bunun qarşısını almalıyıq. Pythonda "həqiqətən özəl" anlayış yoxdur.

Mangling dəyişəninə sinif xaricində də daxil olmaq mümkündür. Aşağıdakı nümunəyə baxın.

FirstClass sinif:

!! def __add (özünü):

!!!! çap et (self.num1 + self.num2)

!! def sub (özünü):

!!!! çap et (self.num1-self.num2)

!! def __init __ (özünü, num1, num2):

!!!! self.num1 = num1

!!!! self.num2 = num2

f = FirstClass (1,2) # instansiya

f._FirstClass__add () # 3

f () # -1