Új hozzászólás Aktív témák
-
kovisoft
őstag
válasz
DrojDtroll
#2696
üzenetére
Általánosságban nem tudod ezt megtenni, csak ún. mutable adattípusokra, mint pl. lista, dictionary. A példád pont menni fog, ha b egy objektum, akkor annak egy attributumát tudod módosítani egy függvényben (de nem tudod lecserélni magát az objektumot):
>>> class myclass:
... def __init__(self, initc):
... self.c = initc
...
>>> x = myclass('semmi')
>>> x.c
'semmi'
>>> def a(b):
... b.c='valami'
...
>>> a(x)
>>> x.c
'valami'De ez nem fog minden adattípusra működni. Úgy kell elképzelni, hogy pythonban nem olyan változók vannak, amiknek - ahogy a nevük is jelzi - változhat az értékük (mint pl. C-ben), hanem sokkal inkább címkék. Ugyanis amikor egy változónak új értéket adunk, akkor igazából átcímkézzük azt, hogy egy új értékre mutasson. Legalábbis ez igaz, az ún. immutable típusokra (számok, stringek, stb). Ha egy ilyen változót átadsz egy függvénynek, majd a függvényen belül változtatod az értékét, akkor igazából a paraméter változót címkézed át az új értékre, de ennek nincs hatása az eredeti változóra, amit átadtál a függvénynek.
Nincs olyan nyelvi módosító elem, hogy egy változót érték vagy referencia szerint adhass át. A függvény paraméterek mindig érték szerint vannak átadva, de mutable típusoknál az objektum referencia van érték szerint átadva.
Új hozzászólás Aktív témák
- Samsung Galaxy S25 Edge 512GB, Kártyafüggetlen, 1 Év Garanciával
- BESZÁMÍTÁS! MSI B460M 10400F 16GB DDR4 512GB SSD RX 6600XT 8GB Rampage SHIVA Cooler Master 650W
- GYÖNYÖRŰ iPhone 11 64GB Black -1 ÉV GARANCIA - Kártyafüggetlen, MS4325, 100% Akkumulátor
- Samsung A17 mobiltelefon
- Okosóra felvásárlás!! Samsung Galaxy Watch 6, Samsung Galaxy Watch 7, Samsung Galaxy Watch Ultra
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
Cég: Central PC számítógép és laptop szerviz - Pécs
Város: Pécs

