പൈത്തൺ ഐഡന്റിറ്റി ഓപ്പറേറ്ററും ==, IS ഓപ്പറേറ്ററും തമ്മിലുള്ള വ്യത്യാസവും പഠിക്കുക


പൈത്തണിലെ (\IDENTITY OPERATOR) ഒരു പ്രധാന ഓപ്പറേറ്ററെയും ഒരു ഐഡന്റിറ്റി ഓപ്പറേറ്റർ (==) എന്നതിൽ നിന്ന് എങ്ങനെ വ്യത്യാസപ്പെട്ടിരിക്കുന്നു (ആണല്ല, അല്ല) എന്നതും വിശദീകരിക്കുന്നതിനാണ് ഈ ലേഖനം പ്രധാനമായും ക്യൂറേറ്റ് ചെയ്തിരിക്കുന്നത്.

ഐഡന്റിറ്റി ഓപ്പറേറ്റർ

ഒബ്uജക്റ്റിന്റെ മെമ്മറി ലൊക്കേഷൻ താരതമ്യം ചെയ്യാൻ ഐഡന്റിറ്റി ഓപ്പറേറ്റർ (\is ഉം \ഇല്ല) ഉപയോഗിക്കുന്നു. ഒരു ഒബ്uജക്uറ്റ് മെമ്മറിയിൽ സൃഷ്uടിക്കുമ്പോൾ ആ ഒബ്uജക്uറ്റിന് ഒരു അദ്വിതീയ മെമ്മറി വിലാസം അനുവദിക്കും.

  • ‘==’ രണ്ട് ഒബ്uജക്റ്റ് മൂല്യങ്ങളും സമാനമാണോ അല്ലയോ എന്ന് താരതമ്യം ചെയ്യുന്നു.
  • രണ്ട് ഒബ്uജക്uറ്റും ഒരേ മെമ്മറി ലൊക്കേഷനിൽ ആണെങ്കിൽ
  • 'is' താരതമ്യം ചെയ്യുന്നു.

പേര്, പേര്1, നെയിം2 എന്നീ മൂന്ന് സ്ട്രിംഗ് ഒബ്uജക്uറ്റുകൾ സൃഷ്uടിക്കുക. സ്ട്രിംഗ് ഒബ്uജക്റ്റ് പേരും നെയിം2 ഉം ഒരേ മൂല്യവും Name1 ന് വ്യത്യസ്ത മൂല്യങ്ങളും ഉണ്ടായിരിക്കും.

നമ്മൾ ഈ ഒബ്uജക്uറ്റുകൾ സൃഷ്uടിക്കുമ്പോൾ, തിരശ്ശീലയ്uക്ക് പിന്നിൽ സംഭവിക്കുന്നത്, ആ ഒബ്uജക്റ്റ് മെമ്മറിയിൽ സൃഷ്uടിക്കപ്പെടുകയും പ്രോഗ്രാമിന്റെ ജീവിതകാലത്ത് ലഭ്യമാകുകയും ചെയ്യും.

രണ്ട് ഒബ്uജക്റ്റ് മൂല്യങ്ങളും ഒന്നുതന്നെയാണോ എന്ന് പരിശോധിക്കാൻ ഇപ്പോൾ നിങ്ങൾക്ക് ഒരു താരതമ്യ ഓപ്പറേറ്റർ ==” ഉപയോഗിക്കാം. താരതമ്യ ഓപ്പറേറ്ററിന്റെ ഔട്ട്uപുട്ട് ഒരു ബൂളിയൻ (ട്രൂ അല്ലെങ്കിൽ ഫാൾസ്) മൂല്യമായിരിക്കും.

സമത്വം നിർണ്ണയിക്കാൻ നിങ്ങൾ ഇപ്പോൾ രണ്ട് മൂല്യങ്ങൾ താരതമ്യം ചെയ്തു, ഐഡന്റിറ്റി ഓപ്പറേറ്റർ എങ്ങനെ പ്രവർത്തിക്കുന്നുവെന്ന് നമുക്ക് നോക്കാം.

ഒരു വസ്തുവിന്റെ \ഐഡന്റിറ്റി ലഭിക്കാൻ ബിൽറ്റ്-ഇൻ Id() ഒരു ഫംഗ്ഷൻ ഉപയോഗിക്കുന്നു. ഒബ്ജക്റ്റിന് അതിന്റെ ജീവിതകാലത്ത് തനതായതും സ്ഥിരവുമായ ഒരു പൂർണ്ണസംഖ്യ.

ഇത് നിങ്ങൾക്ക് അസൈൻ ചെയ്uതിരിക്കുന്ന അദ്വിതീയ ഗവൺമെന്റ് ഐഡി അല്ലെങ്കിൽ എംപ് ഐഡി ആയി കരുതുക, അതുപോലെ ഓരോ ഒബ്uജക്റ്റിനും ഒരു അദ്വിതീയ പൂർണ്ണസംഖ്യ മൂല്യം നൽകിയിരിക്കുന്നു.

ഇപ്പോൾ നിങ്ങൾക്ക് \is” ഓപ്പറേറ്റർ ഉപയോഗിച്ച് 2 ഒബ്ജക്റ്റ് റഫറൻസുകൾ താരതമ്യം ചെയ്യാം.

ഐഡന്റിറ്റി ഓപ്പറേറ്റർ ഉപയോഗിച്ച് ഞാൻ നെയിം, നെയിം1 അല്ലെങ്കിൽ നെയിം2 എന്നിവ താരതമ്യം ചെയ്യുമ്പോൾ ബാക്കെൻഡിൽ അത് പ്രവർത്തിക്കുന്നത് അത് \id(Name) == id(Name2)” ആണ്. id(Name), id എന്നിവ മുതൽ (Name2) രണ്ടും ഒരേ മെമ്മറി ലൊക്കേഷൻ പങ്കിടുന്നു, അത് True നൽകുന്നു.

ഇപ്പോൾ ഇതാ രസകരമായ ഭാഗം വരുന്നു. നെയിം, നെയിം1 എന്നിവയ്uക്ക് ഒരേ മൂല്യമുള്ളതും ഞങ്ങൾ id() ഫംഗ്uഷൻ പ്രവർത്തിപ്പിക്കുമ്പോൾ ഒരേ പൂർണ്ണസംഖ്യ നൽകുന്നതുമായ ഞങ്ങളുടെ മുൻ ഉദാഹരണം നോക്കുക. താഴെയുള്ള സ്uക്രീൻഷോട്ടിൽ നിന്ന് ഒരേ മൂല്യങ്ങൾ പങ്കിടുന്നുണ്ടെങ്കിലും \Name_new, \Name_le” ഒബ്uജക്uറ്റ് സമാനമല്ലെന്ന് നിങ്ങൾ കരുതുന്നത് എന്തുകൊണ്ട്?

പൈത്തൺ ഡിസൈൻ നടപ്പിലാക്കുന്നതാണ് ഇതിന് കാരണം. നിങ്ങൾ ശ്രേണിയിൽ (-5,256) ഒരു പൂർണ്ണസംഖ്യ ഒബ്uജക്uറ്റും 20 ചാറുകളേക്കാൾ വലുതോ തുല്യമോ ആയ സ്uട്രിംഗ് ഒബ്uജക്uറ്റുകൾ സൃഷ്uടിക്കുമ്പോൾ, ഒരേ മൂല്യത്തിൽ മെമ്മറിയിൽ വ്യത്യസ്ത ഒബ്uജക്റ്റുകൾ സൃഷ്uടിക്കുന്നതിന് പകരം ഈ ഒബ്uജക്റ്റുകൾ ഇതിനകം സൃഷ്uടിച്ച ഒബ്uജക്റ്റുകളിലേക്ക് ഒരു പോയിന്ററായി പ്രവർത്തിക്കുന്നു.

ഈ ലേഖനത്തിൽ ഞങ്ങൾ ഇതുവരെ കണ്ടതിന്റെ വ്യക്തമായ ആശയം ചുവടെയുള്ള ചിത്രപരമായ പ്രാതിനിധ്യം നിങ്ങൾക്ക് നൽകും.

ഈ ലേഖനത്തിൽ, ഒരു ഐഡന്റിറ്റി ഓപ്പറേറ്റർ എന്താണെന്ന് ഞങ്ങൾ കണ്ടു. താരതമ്യ ഓപ്പറേറ്ററും ഐഡന്റിറ്റി ഓപ്പറേറ്ററും എങ്ങനെ ഉപയോഗിക്കുന്നു, മെമ്മറിയിൽ ഒരു ഒബ്ജക്റ്റ് എങ്ങനെ സൃഷ്ടിക്കപ്പെടുന്നു എന്നതിനെക്കുറിച്ചുള്ള ഡിസൈൻ നടപ്പിലാക്കൽ.