[python] Python a ukazatele
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
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/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
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