Article View: pl.comp.lang.python
Article #8689Re: Największy problem Pythona.
From: Maciej Pietrzak
Date: Thu, 12 May 2005 08:59
Date: Thu, 12 May 2005 08:59
65 lines
4104 bytes
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-mailReferences:
<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