Új hozzászólás Aktív témák
-
cousin333
addikt
válasz DrojDtroll #2696 üzenetére
Miért, amit írtál, nem így működik? [link]
[ Szerkesztve ]
"We spared no expense"
-
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
- Prémium félkonfig féláron -- Core i9 3.6(5.2)GHz x 10mag 20szál -- B.E.S.Z.Á.M.Í.T.Á.S
- Samsung Galaxy A41 64GB, Kártyafüggetlen, 1 Év Garanciával
- Lenovo Tab M11 128GB, Kártyafüggetlen, 1 Év Garanciával
- Xiaomi Redmi 13 5G 256GB, Kártyafüggetlen, 1 Év Garanciával
- PLAYSEAT Challenge + CSL DD Ready2Race Fanatec Bundle
Állásajánlatok
Cég: Ozeki Kft.
Város: Debrecen
Cég: Alpha Laptopszerviz Kft.
Város: Pécs