Jifunze Opereta ya Kitambulisho cha Python na Tofauti Kati ya == na Opereta IS


Makala haya yameratibiwa kufafanua opereta muhimu katika chatu (\IDENTITY OPERATOR) na jinsi opereta kitambulisho hutofautiana (ni, sivyo) na opereta wa kulinganisha (==).

OPERATOR WA KITAMBULISHO

Opereta ya kitambulisho (\ni na \haiko) inatumika kulinganisha eneo la kumbukumbu ya kitu. Wakati kitu kinaundwa kwenye kumbukumbu anwani ya kumbukumbu ya kipekee imetengwa kwa kitu hicho.

  • ‘==’ inalinganisha ikiwa thamani zote za kitu zinafanana au la.
  • ‘ni’ inalinganisha ikiwa kifaa vyote viwili ni vya eneo moja la kumbukumbu.

Unda vitu vitatu vya kamba Jina, Name1, na Name2. Kitu cha kamba Jina na Name2 kitashikilia thamani sawa na Name1 itashikilia maadili tofauti.

Tunapounda vitu hivi, kinachotokea nyuma ya tukio ni, kitu hicho kitaundwa kwenye kumbukumbu na kitapatikana wakati wa maisha ya programu.

Sasa unaweza kutumia opereta linganishi ==” ili kuangalia kama thamani zote za kitu ni sawa. Toleo la opereta linganishi litakuwa thamani ya Boolean (Kweli au Siyo).

Kwa kuwa sasa umelinganisha thamani mbili ili kubainisha usawa, hebu tuangalie jinsi opereta wa kitambulisho hufanya kazi.

Chaguo za kukokotoa Id() iliyojengewa ndani hutumika kupata \utambulisho wa kitu. Nambari kamili ambayo itakuwa ya kipekee na isiyobadilika kwa kitu hicho wakati wa uhai wake.

Ili kuifanya iwe rahisi fikiria hii kama kitambulisho cha kipekee cha serikali au kitambulisho cha Emp ulichopewa, vile vile thamani kamili ya kipekee imetolewa kwa kila kitu.

Sasa unaweza kulinganisha marejeleo 2 ya vitu kwa kutumia opereta \ni.

Ninapolinganisha Jina na Name1 au Name2 kwa kutumia opereta kitambulisho inachofanya kwenye sehemu ya nyuma ni kwamba inaendesha \id(Name) == id(Name2)”. Tangu id(Name) na kitambulisho. (Jina2) zote zinashiriki eneo la kumbukumbu sawa, inaleta Kweli.

Sasa hapa inakuja sehemu ya kuvutia. Angalia mfano wetu wa awali ambapo Jina na Name1 zote zina thamani zinazofanana na hurejesha thamani kamili sawa tunapoendesha id() chaguo la kukokotoa. Kwa nini unafikiri kipengee cha \Jina_mpya na \Jina_le havifanani ingawa vinashiriki maadili sawa kutoka kwenye picha ya skrini iliyo hapa chini?

Hii ni kwa sababu ya utekelezaji wa muundo wa python. Unapounda kitu kamili katika safu (-5,256) na vitu vya kamba kubwa kuliko au sawa na chari 20, badala ya kuunda vitu tofauti kwenye kumbukumbu kwa thamani sawa vitu hivi hufanya kama kiashirio kwa vitu vilivyoundwa tayari.

Chini ya uwakilishi wa picha itakupa wazo wazi la kile tumeona hadi sasa katika makala hii.

Katika makala hii, tumeona ni nini operator wa kitambulisho. Jinsi mwendeshaji wa kulinganisha na mwendeshaji wa kitambulisho hutumiwa, utekelezaji wa muundo wa jinsi kitu kinaundwa kwenye kumbukumbu.