Tgħallem Python Identity Operator u Differenza Bejn == u IS Operatur


Dan l-artikolu huwa prinċipalment ikkurat biex jispjega operatur importanti f'python (OPERATOR TAL-IDENTITÀ) u kif operatur tal-identità huwa differenti (huwa, mhuwiex) mill-operatur ta' tqabbil (==).

OPERATUR TAL-IDENTITÀ

Operatur tal-identità (\huwa u \mhux) jintuża biex iqabbel il-post tal-memorja tal-oġġett. Meta oġġett jinħoloq fil-memorja indirizz uniku tal-memorja jiġi allokat għal dak l-oġġett.

  • ‘==’ tqabbel jekk iż-żewġ valuri tal-oġġett humiex identiċi jew le.
  • 'huwa' tqabbel jekk kemm l-oġġett jappartjenix għall-istess post tal-memorja.

Oħloq tliet oġġetti string Isem, Isem1, u Isem2. Oġġett String Isem u Name2 se jżommu l-istess valur u Name1 se jżommu valuri differenti.

Meta noħolqu dawn l-oġġetti, dak li jiġri wara x-xena huwa, dak l-oġġett se jinħoloq fil-memorja u se jkun disponibbli matul il-ħajja tal-programm.

Issa tista' tuża operatur ta' tqabbil ==” biex tiċċekkja jekk iż-żewġ valuri ta' l-oġġett humiex l-istess. L-output ta' l-operatur ta' paragun se jkun valur Boolean (Veru jew Falz).

Issa li qabbilt żewġ valuri biex tiddetermina għall-ugwaljanza, ejja nagħtu ħarsa lejn kif jaħdem l-operatur tal-identità.

Il-funzjoni Id() inkorporata tintuża biex tikseb l-\identità ta' oġġett. Numru sħiħ li se jkun uniku u kostanti għall-oġġett matul il-ħajja tiegħu.

Biex tagħmilha sempliċi aħseb li dan bħala ID uniku tal-gvern jew Emp ID assenjat lilek, bl-istess mod jiġi assenjat valur sħiħ uniku għal kull oġġett.

Issa tista' tqabbel 2 referenzi ta' oġġett billi tuża l-operatur \is”.

Meta nqabbel l-Isem u l-Isem1 jew l-Isem2 bl-użu tal-operatur tal-identità dak li jagħmel fil-backend huwa sempliċement jaħdem \id(Isem) == id(Isem2). Peress id(Isem) u id (Isem2) it-tnejn jaqsmu l-istess post tal-memorja, jirritorna Veru.

Issa hawn tidħol il-parti interessanti. Ħares lejn l-eżempju preċedenti tagħna fejn kemm Isem kif ukoll Name1 għandhom valuri identiċi u jirritorna l-istess valur sħiħ meta nħaddmu l-funzjoni id(). Għaliex taħseb li l-oġġett \Name_new u \Name_le mhumiex identiċi minkejja li jaqsmu l-istess valuri mill-screenshot hawn taħt?

Dan huwa minħabba l-implimentazzjoni tad-disinn tal-python. Meta toħloq oġġett sħiħ fil-medda (-5,256) u oġġetti string akbar minn jew ugwali għal 20 karattri, minflok ma toħloq oġġetti differenti fil-memorja għall-istess valur dawn l-oġġetti jaġixxu bħala pointer għal oġġetti diġà maħluqa.

Taħt ir-rappreżentazzjoni bl-istampi tagħtik idea ċara ta 'dak li rajna s'issa f'dan l-artikolu.

F'dan l-artikolu, rajna x'inhu operatur tal-identità. Kif jintuża l-operatur tal-paragun u l-operatur tal-identità, implimentazzjoni tad-disinn dwar kif oġġett jinħoloq fil-memorja.