🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: pl.comp.lang.python
6 messages
6 total messages Started by Rafal Zawadzki Fri, 06 Dec 2002 11:19
Mindekser
#252
Author: Rafal Zawadzki
Date: Fri, 06 Dec 2002 11:19
14 lines
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
#253
Author: Jacek Konieczny
Date: Fri, 06 Dec 2002 11:29
14 lines
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
#254
Author: Rafal Zawadzki
Date: Fri, 06 Dec 2002 12:00
21 lines
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
#255
Author: Marcin Wojtczuk
Date: Fri, 06 Dec 2002 15:22
12 lines
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
#258
Author: Jacek Konieczny
Date: Fri, 06 Dec 2002 16:33
30 lines
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
#256
Author: Jarek Zgoda
Date: Fri, 06 Dec 2002 19:07
19 lines
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