Hirdetés
- sziku69: Fűzzük össze a szavakat :)
- Luck Dragon: Asszociációs játék. :)
- sziku69: Szólánc.
- Meggyi001: Áram nélkül....méltóság nélkül.....
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- gban: Ingyen kellene, de tegnapra
- Hieronymus: Az igaz barátság kezdete
- Mr Dini: Mindent a StreamSharkról!
- Luck Dragon: Alza kuponok – aktuális kedvezmények, tippek és tapasztalatok (külön igényre)
- Meggyi001: Amire figyelned kell Párizsban is...
Új hozzászólás Aktív témák
-
cousin333
addikt
válasz
Tigerclaw
#820
üzenetére
Nem vagyok expert, de valahogy a következőképpen tudom elképzelni (ez most vélhetően elég pongyola lesz): meg kell különböztetni magát az objektumot és az arra mutató referenciát:
a = 13
b = aA fenti kód esetében a 13 mint egész szám, eltárolódik a memóriába, és erre az a változó hivatkozik. A második sor egy b nevű referenciát hoz létre, ami azonban szintén ugyanarra a 13 objektumra vonatkozik! Ha most az alábbi kódot írod:
a = "szoveg"akkor tulajdonképpen nem az a-t változtatod meg, hanem létrehozol egy "szoveg" tartalmú sztringet és az a ezen túl arra az objektumra fog mutatni. Ha ugyanezt mondjuk a b-vel is eljátszod (ami most még mindig a 13-ra mutat!):
b = 9.817akkor létrejön a 9,817 lebegőpontos szám és a b arra mutat. A 13-ra már nem mutat semmi, azért a szemétgyűjtő (garbage collector) előbb-utóbb összegyűjti ("megsemmisíti").
Tehát amikor a "sztringből egész számot csinálsz", akkor nem magát a sztringet változatod meg, hanem csak a hivatkozásod (változóneved) már egy más memóriaterületen lévő, másik objektumra fog utalni. Ha egy karaktert írnál át akkor viszont ugyanazt az objektumot módosítanád, ami nem lehet, hiszen immutable. "Módosítani" csak úgy tudod, ha létrehozol egy teljesen új sztringet, ami már tartalmazza a kívánt módosítást (pl. "alma" -> "elme") és azt ugyanúgy nevezed el, ahogy a régit hívták. Ekkor az eredeti sztring még ott van, csak már nem kell senkinek és megy a "kukába". Tehát:
a = "alma"
a = "elme"A két sztring objektum teljesen különbözik, az l és az m sem "közös". Csak mindkettőt ugyanúgy hívják, a Python meg "elfelejti" az elsőt és mindig csak az utolsóra emlékszik.
Azon objektumokat, amiket helyben nem, csak másolással és aközbeni módosítással lehet "módosítani" nevezzük immutable-nak.
Ezzel szemben egy Python lista például nem olyan mint pl. a C tömb, ahol azonos típusú elemek vannak egymás után a memóriában. A lista egy viszonylag bonyolult objektum, ami többek között mutatókat tartalmaz az egyes listaelemekre. Ezért tartalmazhat egy lista tetszőleges típusú elemeket, akár listákat is vegyesen. Ebben az esetben egy listaelem módosítása tulajdonképpen az adott elem referenciájának módosítását jelenti (pl. mostantól a
23helyett a "szöveg" sztringre mutat), viszont minden más elemet érintetlenül hagy. Volt erről egy jó kis Youtube videó valahol.Remélem érthető volt valamelyest és nem is írtam totális hülyeségeket.

Új hozzászólás Aktív témák
- VR topik
- A fociról könnyedén, egy baráti társaságban
- Milyen belső merevlemezt vegyek?
- Okos otthon - Home Assistant, openHAB és más nyílt rendszerek
- Autós topik
- 3D nyomtatás
- Intel Core i5 / i7 / i9 "Alder Lake-Raptor Lake/Refresh" (LGA1700)
- Pécs és környéke adok-veszek-beszélgetek
- Crimson Desert
- Melyik tápegységet vegyem?
- További aktív témák...
- 2K Gamer PC - Ryzen 7 5800X / AIO / RX 9060 XT 16GB / B550M WIFI / 32GB RAM / 1TB SSD / 650W GOLD
- LG 77B4 - 77" OLED - 4K 120Hz 1ms - NVIDIA G-Sync - FreeSync Premium - HDMI 2.1 - PS5 és Xbox Ready
- Dell Precision 7670 FHD+ / i9-12950HX 16C / 64G D5 / 1T G4 / Quadro RTX A4500 16GB Pro tervező
- Újszerű Samsung Galaxy Fold 5 - 5G - 12Gb/512GB -(2026 Augusztusig Garis)+S-pen tok ceruzával
- WD Black SN850X 8TB
- ÁRGARANCIA! Épített KomPhone R7 5700X 16/32/64GB RAM RX 9060 XT 16GB GAMER PC termékbeszámítással
- ÁRGARANCIA!Épített KomPhone Ryzen 5 7500F 32/64GB DDR5 RTX 5060 8GB GAMER PC termékbeszámítással
- Bomba ár! Lenovo ThinkPad T480s - i5-8G I 8GB I 256SSD I 14" FHD Touch I HDMI I Cam I W11 I Gari!
- 4 db Lenovo LOQ (17IRX10) - Intel Core i7-13700HX, RTX 5060
- ALIENWARE Area-51 R6 Threadripper Edition 1920X
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest

