🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

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

Re: python vs php - potrzebne argumenty

#26762
From: Marek Wywiał
Date: Sat, 31 Oct 2009 21:51
145 lines
6400 bytes
On 31 Paź, 22:44, pakalk <pak...@gmail.com> wrote:
> On Oct 31, 10:17 pm, Marek Wywiał <onj...@gmail.com> wrote:
>
>
>
>
>
> > On 31 Paź, 20:54, pakalk <pak...@gmail.com> wrote:
>
> > > > To, że nie można polegać na systemie  
> > > > wyjątków w PHP - to drugie.
>
> > > Czemu nie mozna?
>
> > try {
> >   jakis kod;} catch(NieMatakiejKlasy $e) {
>
> >   print "chcialbym tu dotrzec";
>
> > }
>
> > póki kod przed w try jest ok, to ok
> > gdy dotrze do niestniejącejklasy wyjątku (literówka)
> > skończy się fatalem zamiast obsługą
>
> To co to ma wspolnego ze zlym systemem wyjatkow?
>
>
>
> > Metoda statyczna, jest to metodą nie używająca właściwości obiektu w
> > którym się znajduje,
>
> Metody statyczne nie sa wlasnoscia obiektow, tylko klas.
>
> > tylko np dodająca 2 wartości przekazane jako argumenty. A do tego
> > służą funkcje odpowiednim
> > namespace/pakiecie.
>
> Albo w odpowiedniej klasie, ktroa w ten sposob agreguje funkcje.
>
> > To nie jest standard OOP tylko proteza na
> > upychanie funkcji w namespace klasy
> > w Javie.
>
> Powiedz to autorom UML, bo chyba o tym nie slyszeli, skoro zawarli to
> w standardzie.
>
>
>
> > W pythonie wystarczy umieścić funkcję w pakiecie, nie potrzeba do tego
> > wymyślać klasy, w której
> > chciałbym mieć tą funkcję.
>
> To po co w pythonie sa metody klasowe i statyczne (inaczej dzialajace
> niz w innych jezykach, bo nie w kontekscie klasy)?
>
>
>
> > Jak już zostało wspomniane moim zdaniem portowanie do języka
> > dynamicznego jakim jest PHP wzorców i konstrukcji
> > z języka statycznego jest przerostem formy nad treścią, gdyż wiele
> > rozwiązań w javie jest stworzonych po to
> > by obchodzić jego statyczność i pozwolić wykonać to co w językach
> > dynamicznych można na dzień dobry.
>
> Twoim zdaniem. A moim zdaniem jest inaczej.
>
>
>
> > > > interfejsów
>
> > > Interfejsy sa nieobiektowymi konstrukcjami?
>
> > Interfejsy nie są OOP. W przypadku niektórych implementacji używa się
> > ich do oznaczania oraz wymuszania spójności interfejsów klas.
>
> Ok, musisz to powiedziec autorom UML. Znow. Chociaz po co - oni sie na
> obiektowce w ogole nie znaja.
>
>
>
> > Protected i private też nie należą do OOP tylko do konkretnej
> > implementacji OOP.
>
> Ech.. gadasz bez sensu. Enkapsulacja to podstawa programowania
> obiektowego.
>
> > Nie służą one do wymuszania ale do informowania o przeznaczeniu
> > konkretnej właściwości.
>
> Owszem, sluza do wymuszania uzywania/nieuzywania danych czlonkow klasy
> w dany sposob. Nie wiem, czy Ty w ogole zdajesz sobie sprawe o czym
> mowisz. Informowac to sobie mozesz w komentarzach.
>
>
>
> > Problem się zaczyna przy dużym projekcie, wielu klasach dziedziczących
> > (płasko, nie głębokie drzewa),
> > gdy okazuje się, że protected z klasy bazowej sprawia spory problem
> > przy rozwijaniu projektu.
>
> Zly model obiektowy - co z tego? Protected generalnie nie jest uzywane
> poza miejscami, gdy klasy pochodne maja "skonfigurowac" dzialanie
> klasy, ktorej generalny mechanizm zawarto w bazowej. Wtedy sie
> sprawdzaja. W Pythonie (w dokumentacji chocby) widzialem metody
> publiczne, ktore sa przeznaczone do  nadpisania w klasach pochodnych.
> One wlasnie powinny miec ustawiony modyfikator protected.
>
>
>
> > Tworzy się wtedy obejście na niepotrzebne blokowanie przy pomocy klas
> > friendly.
>
> Nie wiem skad Ci sie wziely teraz klasy zaprzyjaznione.
>
>
>
> > W pytonie wystarczy oznaczyć element jako protected '_' czy private
> > '__' i każdy normalny programista
> > zrozumie jego znaczenie, czyli nie używaj, a jak musisz to w klasach
> > ściśle powiązanych i musisz być przygotowany
> > na zmiany jeżeli nie ty rozwijasz pakiet z daną właściwością. Czyli
> > masz to samo co w Java, tylko bez zbędnego pisania
> > i bez problemów przy złożonych systemach.
>
> Z glupimi nazwami.
>
>
>
> > Hermetyzacja nie oznacza blokowania klasy przed idiotami, tylko jasne
> > oznaczenie przeznaczenia klas i ich elementów.
>
> Owszem.
>
> > W php czy w java oznaczenie jako private nie oznacza, że nie uda się
> > dostać do danej właściwości, bo można choć nie wprost (identycznie jak
> > w pythonie).
>
> Ok, ale co z tego?

Starałem ci się pokazać, że w pythonie jaki w php enkapsulacja działa
i jest tak samo sprawna,
skoro piszesz 'Ok, ale co z tego?' czyli to widzisz i z tego tyle, że
mój wywód pomimo zmylonego objekt/klasa
na coś się przydał :)
Technical Details
Message-ID: <bf0bd42c-16ed-4352-a223-8ff78bc076ce@g27g2000yqn.googlegroups.com>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!newsfeed.gazeta.pl!wsisiz.edu.pl!plix.pl!newsfeed1.plix.pl!goblin1!goblin.stu.neva.ru!postnews.google.com!g27g2000yqn.googlegroups.com!not-for-mail
References: <h83in7$rl3$1@inews.gazeta.pl> <b9dc7116-39db-474f-9282-8862b3f1cad2@d5g2000yqm.googlegroups.com> <a501db87-9ccf-4694-a8f8-330a67cdc839@15g2000yqy.googlegroups.com> <7aa62383-88c2-4138-89d6-594112504075@g27g2000yqn.googlegroups.com> <op.u2nhqrhyeaqjf2@macbook-pro-15-zbiru.local> <97ad13b9-95bf-4c61-8a1b-59c7c57e8499@s31g2000yqs.googlegroups.com> <op.u2oi93ceeaqjf2@macbook-pro-15-zbiru.local> <12b7fbaa-206c-4b39-8868-4e3b96eea704@37g2000yqm.googlegroups.com> <43f4c68c-2cfa-4444-b8e7-f520d337cfcb@m16g2000yqc.googlegroups.com> <dc9968ac-053b-41b3-83c2-113fa9c3a9df@37g2000yqm.googlegroups.com>

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!newsfeed.gazeta.pl!wsisiz.edu.pl!plix.pl!newsfeed1.plix.pl!goblin1!goblin.stu.neva.ru!postnews.google.com!g27g2000yqn.googlegroups.com!not-for-mail
From: Marek Wywiał <onjinx@gmail.com>
Newsgroups: pl.comp.lang.python
Subject: Re: python vs php - potrzebne argumenty
Date: Sat, 31 Oct 2009 14:51:58 -0700 (PDT)
Organization: http://groups.google.com
Lines: 156
Message-ID: <bf0bd42c-16ed-4352-a223-8ff78bc076ce@g27g2000yqn.googlegroups.com>
References: <h83in7$rl3$1@inews.gazeta.pl> <b9dc7116-39db-474f-9282-8862b3f1cad2@d5g2000yqm.googlegroups.com>  <a501db87-9ccf-4694-a8f8-330a67cdc839@15g2000yqy.googlegroups.com>  <7aa62383-88c2-4138-89d6-594112504075@g27g2000yqn.googlegroups.com>  <op.u2nhqrhyeaqjf2@macbook-pro-15-zbiru.local> <97ad13b9-95bf-4c61-8a1b-59c7c57e8499@s31g2000yqs.googlegroups.com>  <op.u2oi93ceeaqjf2@macbook-pro-15-zbiru.local> <12b7fbaa-206c-4b39-8868-4e3b96eea704@37g2000yqm.googlegroups.com>  <43f4c68c-2cfa-4444-b8e7-f520d337cfcb@m16g2000yqc.googlegroups.com>  <dc9968ac-053b-41b3-83c2-113fa9c3a9df@37g2000yqm.googlegroups.com>
NNTP-Posting-Host: 83.30.112.8
Mime-Version: 1.0
X-Trace: posting.google.com 1257025919 6080 127.0.0.1 (31 Oct 2009 21:51:59 GMT)
X-Complaints-To: groups-abuse@google.com
NNTP-Posting-Date: Sat, 31 Oct 2009 21:51:59 +0000 (UTC)
Complaints-To: groups-abuse@google.com
Injection-Info: g27g2000yqn.googlegroups.com; posting-host=83.30.112.8;  posting-account=eUslOwoAAABzJHUPZYYTJJROK5AqCeD5
User-Agent: G2/1.0
X-HTTP-UserAgent: Mozilla/5.0 (X11; U; Linux i686; en-US) AppleWebKit/532.3  (KHTML, like Gecko) Chrome/4.0.223.11 Safari/532.3,gzip(gfe),gzip(gfe)
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit