Python

Maināms vs. Nemaināmi objekti Python

Maināms vs. Nemaināmi objekti Python

Tiek teikts, ka Python ir visapbrīnojamākā valoda, jo daudzi cilvēki to izvēlas kā savu pirmo valodu programmēšanai elegances un vienkāršības dēļ. Pateicība plašajai sabiedrībai, pakešu pārpalikums un konsekventā sintakse, pieredzējuši profesionāļi izmanto arī Python. Lai gan ir viena lieta, kas, šķiet, kaitina gan iesācējus, gan dažus profesionālus izstrādātājus - objektus no Python.

Maināms vs. Nemaināms

Maināms subjekti var mainīt viņu stāvoklis vai viela - aprakstīt atšķirības un nemainīgs entītijas nevar mainīt savu stāvokli vai būtību. Tātad, kad objekts ir izveidots, īpašs objekta ID tiek piešķirts. Izpildes laikā tiek norādīts objekta veids, un to vēlāk nevar atjaunināt. Iebūvētās formas, piemēram, int, float, bool, str, tuple un Unicode mainīgie ir nemainīgas. Tādi objekti kā saraksts, kopa, baitu masīvi un iebūvēto kategoriju vārdnīca ir maināmi.

Izprotiet ID un tipa funkciju

Integrētais id () metode objekta ID satur tikai veselu skaitli. Šis skaitlis parasti attiecas uz objekta glabāšanas vietu. The 'ir'operators savstarpēji saista divu objektu identitātes. Integrētā funkcija, tips (), atgriež objekta veidu. Salīdziniet divus mainīgos 'x' un 'y"ar tādu pašu vērtību, izmantojot vienlīdzības operatoru"x == y', tas izvadīs Patiesi. Izmantojot id () funkcija, mēs esam salīdzinājuši atmiņas adreses no abiem mainīgajiem lielumiem tas tiks izvadīts Nepatiesa tāpēc, ka abi mainīgie ir atšķirīgi un atrodas dažādās atmiņas vietās, lai gan tajos esošās vērtības ir vienādas.

Izveidot citu mainīgo 'z"kas norāda uz identisku vienību, kas"x"vērš, izmantojot uzdevuma operatoru"=". Izmantojot 'irOperators esam atklājuši, ka viņi abi norāda uz vienu un to pašu objektu un tiem ir vienādas atmiņas adreses.

Nemaināmi mainīgo veidi

Apskatīsim dažus nemainīgus mainīgo veidus.

Integer DataType

Definēsim mainīgo 'x"kam ir vērtība"10". Iebūvēts id () metode tiek izmantots, lai uzzinātu atrašanās vietux'atmiņā un tips () tiek izmantots tā veida identificēšanai. Kad mēs mēģinām mainīt vērtībux', tas tiek veiksmīgi mainīts, lai gan atmiņas adrese atgriežas atšķirīgi. Tas ir tāpēc, ka mēs faktiski neesam mainījuši vērtībux', bet mēs esam izveidojuši citu objektu ar tādu pašu nosaukumu'x"un piešķiriet tai citu vērtību. Mēs esam sasaistījuši vārdu 'x'uz jauno vērtību. Tagad, kad zvanāt 'x'tas izvadīs jauno vērtību.

Virknes datu tips

Tas pats virknes datu tipam, mēs nevaram modificēt esošo mainīgais bet mums tas ir jādara izveidot jaunu ar tādu pašu nosaukumu. Šeit mums ir definēts virknes mainīgais 'x"un vēlaties pievienot"w'tā nulles rādītājiem. Tas izvadīs TypeError, parādot, ka virknes objekts neatbalsta atjaunināšanu.

Tuple DataType

Ieskatieties dubultā mainīgais, mēs esam definējuši a dubultā ar 4 vērtībām. Mēs esam izmantojuši id () funkcija lai izvadītu tās adresi. Kad mēs vēlamies mainīt tā vērtību pie 0 indeksi, tas dod TypeError šī kopa neatbalsta vienuma piešķiršanu vai atjaunināšanu.

Gluži pretēji, jūs varat Atjaunināt visu dubultu, definējot to no saskrāpēt. Tagad, kad to pārbaudīsit, atradīsit jaunu vērtību un jaunu adresi.

Float DataType

Mums ir pludiņa tipa mainīgais 'x". Izmantojot id () funkcija, mums jānoskaidro tā adrese. Kad mēs vēlamies mainīt tā vērtību indekss 1, tas dod TypeError šis pludiņš neatbalsta vienuma modifikāciju.

Un otrādi, mēs esam atjauninājuši peldēt definējot to vēlreiz. Tagad, kad mēs to nosauksim, mēs atradīsim jaunu vērtību un jaunu adresi.

Maināmi mainīgie veidi

Tagad mēs aplūkosim dažus mainīgos mainīgo veidus.

Sarakstā DataType

Mēs esam definējuši a sarakstā nosaukts 'x'un pievienojiet tam dažas vērtības. Kamēr palaist, tas parādīs saraksta vērtības. Kad jūs Atjaunināt sarakstu, piešķirot jaunas vērtības indekss 0 un 2, tas to veiksmīgi izdarīs.

Iepriekš aprakstītais piemērs ir vienkāršs un vienkāršs modifikācijas piemērs. Lai pārbaudītu mainīgumu citā līmenī, apskatīsim to pašu piemēru ar nelielām izmaiņām. Mēs esam izveidojuši jaunu vārdu 'y'un saistīja to ar to pašu saraksta objektu. Kad mēs pārbaudījām, vaix"ir tas pats, kas"y', tas atgriež True. No otras puses, abix' un 'y"ir tāpat atmiņa adreses.

Tagad pievienojiet jaunu vērtību a saraksta nosaukums 'x' un pārbaudiet atjaunināto izvadi.

Tagad, kad pārbaudāt sarakstu nosaukt 'y', tas parādīs to pašu sarakstu, kas parādīts “x”. Tas nozīmē, kad mēs atjauninām to pašu objektu sarakstu, kam ir divi dažādi nosaukumi 'x' un 'y'. Abas ir vienādas un tām ir vienādas atmiņas adreses arī pēc modifikācijas.

Vārdnīcas datu tips

Tā kā vārdnīcas Python parasti tiek izmantoti mainīgie, apskatīsim vārdnīcu mainīgumu. Mēs esam definējuši vārdnīcu ar nosaukumu 'diktēt'ar trim taustiņiem un to vērtībām. Kad mēs to izdrukāsim, tas parādīs visu tā saturu. Katru vārdnīcas vērtību var izdrukāt atsevišķi, kā arī izmantot to taustiņus indeksu vietā.

Mēs gribam mainīt konkrēto vērtību, atjauninot taustiņš 'Nosaukums'. Tas izdos atjaunināto vārdnīcu. Vārdnīcas taustiņi nav maināmi.

Definēsim a sarakstā un dubultā atsevišķi. Pārliecinies ka dubultā jābūt a saraksta veida vērtība tajā un sarakstā ir a dubultā tipa vērtība tajā attiecīgi.

A dubultā ir sarakstā uz tā 0 indeksi tāpēc, kad jūs maināt pie 0 indeksi par dubultu, jums jāpiemin indekss no saraksta, kuru vēlaties mainīt. Izmaiņas notiek tāpēc, ka saraksts ir nemainīgs.

Gluži pretēji, saraksta mainīgo nevar atjaunināt, jo tam ir dubultā ieslēgts 0 indekss, kas ir maināms.

Secinājums

Mēs esam redzējuši Python variācijas starp maināmu un nemainīgu. Jums ir skaidri jāapzinās, ka viss Python failā tiek dēvēts par objektu. Pirmkārt, atšķirība starp objektiem, kas ir maināmi vs. nemainīgs.

Labākās komandrindas spēles Linux
Komandrinda nav tikai lielākais sabiedrotais, lietojot Linux, bet tā var būt arī izklaides avots, jo to var izmantot, lai spēlētu daudzas jautras spēl...
Labākās Linux spēļu gamepad kartēšanas lietotnes
Ja jums patīk spēlēt spēles Linux ar parastu tastatūru, nevis parasto tastatūru un peles ievades sistēmu, jums ir dažas noderīgas lietotnes. Daudzas d...
Noderīgi rīki Linux spēlētājiem
Ja jums patīk spēlēt spēles Linux, iespējams, ka spēļu pieredzes uzlabošanai, iespējams, esat izmantojis tādas lietotnes un utilītprogrammas kā Wine, ...