🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.python
Article #8689

Re: Największy problem Pythona.

#8689
From: Maciej Pietrzak
Date: Thu, 12 May 2005 08:59
65 lines
4104 bytes
Daniel Mróz wrote:
> Filip Dreger napisał(a):
> 
>> bezmyślnego (w pisaniu zmyślnym IDE nie pomaga wcale). Dobrym
>> przykładem są standardowe gettery i settery: w javowych IDE są często
>> generowane automatycznie, w pythonowych IDE nie są, ale ich użycie
>> jest w ogóle błędem.
> 
> Mozna prosic o rozwiniecie?

W Pajtonie używamy atrybutów dostępnych globalnie, zamiast setterów i
getterów.

Jeśli chcemy zmiecić wiek pracownika e, to robimy e.age = 14, a nie
e.setage(14). To jest naturalne, ponieważ to co chcemy zrobić, to jest:
"zmienić wartość e.age", a nie "wywołać metodę e ustawiającą wiek z
parametrem 14". Zamiast deklarować atrybut i pisać dwie metody nie
piszemy właściwie nic (inicjalizacja może się przytać, ale w Javie też
jest inicjalizacja, więc faktycznie oszczędzamy czas pisania trzech
elementów klasy - a to tylko najprostszy możliwy przykład).

Jeśli zajdzie potrzeba wzbogacenia klasy o jakieś działania przy
ustawianiu atrybutu, to dodajemy sobie property(getter, setter) zamiast
tego atrybutu.

Tak się jednak składa, że baardzo często atrybut to atrybut i nigdy już
go nie będziemy "ulepszać" i pozostanie sobie globalny.


Ogólnie rzecz biorąc Python ma pewną filozofię. Zakłada ona przede
wszystkim prostotę języka i bezpośrednie dążenie do osiągnięcia celu
najprostszą i najkrótszą drogą, która jednocześnie jest już (dzięki
filozofii) najlepsza.

W Javie też moglibyśmy używać atrybutów globalnych, ale gdyby zaszła w
przyszłości konieczność owinięcia ich w jakieś akcje, to zmiana
interfejsu klasy popsuła by pół projektu.

Z drugiej strony oczywiście Python nie uchroni nas przed np. literówkami
przy wywołaniach metod - na etapie kompilacji bajtkodu nie wiadomo, czy
metoda ta będzie istniała, czy nie (można często zgadywać, ale nie jest
to taka pewna sprawa, jak w językach (nazwijmy to) statycznych, takich
jak Java).

Żeby tak naprawdę wiedzieć, które podejście jest lepsze, należy pewnie
po prostu poprogramować sporo w obu językach.

Przejście z jednego do drugiego języka może być nieco bolesne, ponieważ
wiąże się ze zmianą filozofii programowania.

Pytanie na grupie pythonowej dlaczego Python jest dobry mimo, że jest
inny niż Java zawsze będzie prowadziło do małego flamewara, bo
Pythonowcy już coś dla siebie w typ Pythonie znaleźli (przez
doświadczenia z językiem) i będą mówić o jego zaletach, co u Javowca
będzie budziło naturalny opór, bo dla niego rewelacje Pythonowców są
herezjami jakimiś.
W drugą stronę pewnie bywa podobnie.

Nie ma chyba innej możliwości, niż spróbować dowiedzieć się jak
najwięcej z dyskusji, ale potraktować ją *tylko* jako wstęp - a
prawdziwe rozeznanie przeprowadzić osobiście, sam na sam z językiem.


Pozdrawiam!
Maciej
Technical Details
Message-ID: <d5v5so$2bv$1@achot.icm.edu.pl>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news2.icm.edu.pl!not-for-mail
References: <jsq2enrcpp4r$.nmpn8bgh83ge.dlg@40tude.net> <d5r1l6$flm$1@nemesis.news.tpi.pl> <1njwce3cqj46q.11f4hsu79ksgd.dlg@40tude.net> <1gvuz1q6mpswb.2m8e9kggxehl.dlg@40tude.net> <d5r6le$msg$1@nemesis.news.tpi.pl> <1wa07hpw18hk1.effbya3x2hyr$.dlg@40tude.net> <d5sd5s$ctc$1@gw.magellan.net.pl> <d5v015$3ta$1@nemesis.news.tpi.pl> <d5v2tv$4l7$1@news.supermedia.pl>

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news2.icm.edu.pl!not-for-mail
From: Maciej Pietrzak <mpietrzak+news@polibuda.info.invalid>
Newsgroups: pl.comp.lang.python
Subject: Re: Największy problem Pythona.
Date: Thu, 12 May 2005 10:59:22 +0200
Organization: http://news.icm.edu.pl/
Lines: 65
Message-ID: <d5v5so$2bv$1@achot.icm.edu.pl>
References: <jsq2enrcpp4r$.nmpn8bgh83ge.dlg@40tude.net> <d5r1l6$flm$1@nemesis.news.tpi.pl> <1njwce3cqj46q.11f4hsu79ksgd.dlg@40tude.net> <1gvuz1q6mpswb.2m8e9kggxehl.dlg@40tude.net> <d5r6le$msg$1@nemesis.news.tpi.pl> <1wa07hpw18hk1.effbya3x2hyr$.dlg@40tude.net> <d5sd5s$ctc$1@gw.magellan.net.pl> <d5v015$3ta$1@nemesis.news.tpi.pl> <d5v2tv$4l7$1@news.supermedia.pl>
NNTP-Posting-Host: nat.riviera.pw.edu.pl
Mime-Version: 1.0
X-Trace: achot.icm.edu.pl 1115888344 2431 194.29.137.67 (12 May 2005 08:59:04 GMT)
X-Complaints-To: abuse@icm.edu.pl
NNTP-Posting-Date: Thu, 12 May 2005 08:59:04 +0000 (UTC)
In-Reply-To: <d5v2tv$4l7$1@news.supermedia.pl>
X-Accept-Language: pl, en-us, en
User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.7.7) Gecko/20050502
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit