Thread View: pl.comp.lang.python
6 messages
6 total messages
Started by Rafal Zawadzki
Fri, 06 Dec 2002 11:19
Mindekser
Author: Rafal Zawadzki
Date: Fri, 06 Dec 2002 11:19
Date: Fri, 06 Dec 2002 11:19
14 lines
1225 bytes
1225 bytes
Hej, popełniłem malutki skrypt, niemniej jest on dla mnie bardzo użyteczny. Czy osoby znające dobrze pythona mogą wytknąć mi błędy w kodzie? http://ats.com.pl/~bluszcz/python/filmy.py A właśnie, mam problem z global (ten bałagan poprawię ;): global lancuch, lancuch po ktoryms uzyciu traci na wartosci, i nie jest przekazywany w inne funkcje. Od czego to zależy ? -- http://ats.com.pl/~bluszcz || bluszcz<at>jabberpl.org BOFH excuse #67: descramble code needed from software company
Re: Mindekser
Author: Jacek Konieczny
Date: Fri, 06 Dec 2002 11:29
Date: Fri, 06 Dec 2002 11:29
14 lines
1378 bytes
1378 bytes
In article <slrnav11tq.4am.bluszcz@ats.com.pl>, Rafal Zawadzki wrote:
> A właśnie, mam problem z global (ten bałagan poprawię ;):
> global lancuch, lancuch po ktoryms uzyciu traci na wartosci, i nie jest
> przekazywany w inne funkcje. Od czego to zależy ?
"global" używa się w funkcji, aby zaznaczyć że przypisania do danych nazw
w danej funkcji bedą dotyczyć globalnej przestrzeni nazw. Domyślnie
przypisania dotyczą nazw w lokalnej przestrzeni, więc Twój kod
zmienia zmienną lokalną, nie globalną.
"global" na poziomie programu/modułu (poza funkcją) właściwie nie ma
sensu.
Pozdrowienia,
Jacek
Re: Mindekser
Author: Rafal Zawadzki
Date: Fri, 06 Dec 2002 12:00
Date: Fri, 06 Dec 2002 12:00
21 lines
1816 bytes
1816 bytes
W artykule <slrnav12gl.h0a.jajcus@serwus.bnet.pl> Jacek Konieczny napisał(a): > In article <slrnav11tq.4am.bluszcz@ats.com.pl>, Rafal Zawadzki wrote: >> A właśnie, mam problem z global (ten bałagan poprawię ;): >> global lancuch, lancuch po ktoryms uzyciu traci na wartosci, i nie jest >> przekazywany w inne funkcje. Od czego to zależy ? > "global" używa się w funkcji, aby zaznaczyć że przypisania do danych nazw > w danej funkcji bedą dotyczyć globalnej przestrzeni nazw. Domyślnie > przypisania dotyczą nazw w lokalnej przestrzeni, więc Twój kod > zmienia zmienną lokalną, nie globalną. > > "global" na poziomie programu/modułu (poza funkcją) właściwie nie ma > sensu. W jaki więc sposób mogę zaznaczyć, że dana lista, łańcuch whatever ma być zawsze przenoszona między funkcjami ? -- http://ats.com.pl/~bluszcz || bluszcz<at>jabberpl.org BOFH excuse #258: That's easy to fix, but I can't be bothered.
Re: Mindekser
Author: Marcin Wojtczuk
Date: Fri, 06 Dec 2002 15:22
Date: Fri, 06 Dec 2002 15:22
12 lines
1364 bytes
1364 bytes
Rafal Zawadzki claimed:
> W jaki więc sposób mogę zaznaczyć, że dana lista, łańcuch whatever ma
> być zawsze przenoszona między funkcjami ?
Przekazać jawnie jako parametr ułatwiając w ten sposób czytanie kodu innym ?
(Ale co ja tam wiem..)
PS: Mam nadzieję, że w pythonie nie ma takich paskudztw jak extern czy
volatile ?
--
[ http://www.stringi.com/viper/ ] [ GG 1513591 ]
All good things come to those who wait
Re: Mindekser
Author: Jacek Konieczny
Date: Fri, 06 Dec 2002 16:33
Date: Fri, 06 Dec 2002 16:33
30 lines
1865 bytes
1865 bytes
In article <slrnav14av.4am.bluszcz@ats.com.pl>, Rafal Zawadzki wrote:
> W jaki więc sposób mogę zaznaczyć, że dana lista, łańcuch whatever ma
> być zawsze przenoszona między funkcjami ?
AFAIK nie możesz. Dzięki temu nie trzeba przeglądać całego programu, żeby
zrozumieć co robi pojedyncza funkcja. Nie ma też dużych problemów z
konfliktami nazw, gdy np. skopiujesz jakąś funkcje żywcem z innego
programu. I ostatni argument: takie zachowanie pythona zniechęce do
stosowania zmiennych globalnych, których w zasadzie powinno się unikać.
Można też cały "globalny" stan programu trzymać w jednej zmiennej
globalnej, do której nie ma żadnych przypisań w funkcjach. Wszelkie
"global" są wtedy zbędne.
Przykład.
class GlobalState:
pass
gs=GlobalState()
def fun1():
gs.var1=1
gs.var2=2
def fun2():
gs.var3=gs.var1+gs.var2
Pozdrowienia,
Jacek
Re: Mindekser
Author: Jarek Zgoda
Date: Fri, 06 Dec 2002 19:07
Date: Fri, 06 Dec 2002 19:07
19 lines
1488 bytes
1488 bytes
Dnia Fri, 6 Dec 2002 16:22:05 +0100 Marcin Wojtczuk <fastviper@telkab.pl> pisze: > PS: Mam nadzieję, że w pythonie nie ma takich paskudztw jak extern czy > volatile ? Nie ma też static, nie ma final... Na szczęście w Javie 1.5 mają się pojawić typy parametryzowane (template) i się wyrówna: """ - A w Pythonie nie ma static ani final! - Za to w Javie są templejty... Niech Bóg ma Was w swej opiece! """ -- ~$ rm -f /bin/Laden I po kłopocie! -- Serwis Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads