[python] Python a ukazatele

2009-01-15 Tema obsahu martin jirasek
Dobrý den,
zajímalo by mne, zda Python zná něco jako ukazatele. Kouknul jsem na pár 
webových stránek, ale moudřejší z toho nejsem, vypadá to spíš, jako by toto 
python neuměl.
___
Python mailing list
Python@py.cz
http://www.py.cz/mailman/listinfo/python


Re: [python] Python a ukazatele

2009-01-15 Tema obsahu Vlada Macek
martin jirasek wrote:
 Dobrý den, zajímalo by mne, zda Python zná něco jako ukazatele.
 Kouknul jsem na pár webových stránek, ale moudřejší z toho nejsem,
 vypadá to spíš, jako by toto python neuměl.

Primo ukazatele nema, protoze vlastne nejsou potreba.

Muzete nam prozradit, na reseni jakeho problemu chcete ukazatele pouzit?

-- 
\//\/\
http://macek.sandbox.cz
http://www.easis.cz
begin:vcard
fn:Vlada Macek
n:Macek;Vlada
adr:;;;Liberec;;;Czech Republic
email;internet:tut...@sandbox.cz
title:Software || Networking  UNIX
tel;cell:+420 608 978 164
note;quoted-printable:GPG info: key 0x1F059424, fingerprint 1494 F8DD 6379 4CD7 E7E3 1FC9 D7504=
	243 1F05 9424=0D=0A=
	
url:http://macek.sandbox.cz
version:2.1
end:vcard

___
Python mailing list
Python@py.cz
http://www.py.cz/mailman/listinfo/python

Re: [python] Python a ukazatele

2009-01-15 Tema obsahu Jan Bednařík
2009/1/15 Vlada Macek tut...@sandbox.cz:
 martin jirasek wrote:
 Dobrý den, zajímalo by mne, zda Python zná něco jako ukazatele.
 Kouknul jsem na pár webových stránek, ale moudřejší z toho nejsem,
 vypadá to spíš, jako by toto python neuměl.

 Primo ukazatele nema, protoze vlastne nejsou potreba.

Pro upřesnění bych dodal, že prakticky všechny identifikátory v
Pythonu jsou ukazatele. Chovají se tak nějak intuitivně - při
přiřazení nějaké hodnoty dojde ke kopii té hodnoty, zatímco při
přiřazení instance objektu dojde jen k vytvoření dalšího ukazatele na
ten sám objekt.

Asi takto:

 a = 1
 b = a
 a = 2
 print a
2
 print b
1

 c = [1, 2, 3]
 d = c
 c[0] = 9
 print c
[9, 2, 3]
 print d
[9, 2, 3]

 def f(x):
... x[0] = ahoj
...
 e = [1, 2]
 f(e)
 print e
['ahoj', 2]


Honza
___
Python mailing list
Python@py.cz
http://www.py.cz/mailman/listinfo/python


Re: [python] Python a ukazatele

2009-01-15 Tema obsahu Jirka Vejrazka
Ahoj,

 ukazatele v Pythonu opravdu nejsou potreba, to se vyresi tak nejak
samo. V tehle oblasti je dulezite porozumet tomu, co jsou mutable a
immutable typy (nebudu zkouset to prekladat). Dulezite je to jak se
chovaji pri zmene.
 - mutable typy se zmeni na miste, tj. pointer na objekt zustane
stejny, ale zmeni se objekt (pro ty, kdo prichazeji z jazyku s
pointery) - prikladem je treba list
 - immutable typy - pri zmene se vyrobi kopie puvodniho objeku jinde
v pameti, pointer se presmeruje na ni a puvodni verze se zapomene.
Prikladem je typ int nebo treba string (to byva pro zacinajici
pythonisty prekvapujici)

Priklad (immutable)
 a = 1
 b = a
 a is b
True  - stejne pointery
 a = 2
 a is b
False - po zmene je pointer na a jiny

(mutable)
 c = [1, 2]
 d = c
 c is d
True - zase stejne pointery
 c.append(3)
 c
[1, 2, 3]
 d
[1, 2, 3]
 c is d
True - mutable objekt se zmenil, ale zustal v pameti na svem miste
a c i d stale ukazuji na stejne misto


Snad jsem to jeste vic nezamotal.

   Jirka
___
Python mailing list
Python@py.cz
http://www.py.cz/mailman/listinfo/python