Article View: pl.comp.lang.python
Article #28418Re: Funkcja super
From: lux
Date: Sat, 05 May 2012 17:33
Date: Sat, 05 May 2012 17:33
65 lines
3056 bytes
3056 bytes
On 4 Maj, 08:12, Roman Dobosz <gryf_esm...@spam-o2.pl> wrote: > On Thu, 3 May 2012 13:54:27 -0700 (PDT) > > lux <naukasymf...@gmail.com> wrote: > > Jestem początkujący w Pythonie, jak mam rozumieć funkcję super? To co > > jest w dokumentacji jest dla mnie średnio zrozumiałe, jeśli ktoś może > > wspomóc mnie prostym, trafnym przykładem zastosowania tej funkcji to > > dziękuję. > > http://docs.python.org/library/functions.html#super > > Czyli: mamy klasę Foo, posiadającą metodę foo(), po której dziedziczy > klasa Bar również posiadająca metodę foo:>>> class Foo(object): > > ... def foo(self): > ... print "f" > ...>>> class Bar(Foo): > > ... def foo(self): > ... print "b" > ... > > > > Stworzenie obiektu klasy Bar i wywołanie metody foo() spowoduje > wyświetlenie tylko napisu "b". > > > > >>> obj = Bar() > >>> obj.foo() > b > > Natomiast: > > >>> class Bar(Foo): > > ... def foo(self): > ... super(Bar, self).foo() > ... print "b" > ...>>> obj = Bar() > >>> obj.foo() > > f > b > > > > Czyli, super spowodowało uruchomienie metody (foo()) na rzecz obiektu > po którym dziedziczy Bar - stąd pierwszy argument jaki super > przyjmuje to Bar a nie Foo. Oczywiście ten przykład jest bardzo > trywialny, ale nietrudno sobie wyobrazić sytuację, gdzie zamiast > printów znajduje się konkretny kod robiący istotne rzeczy. > > To tylko wierzchołek góry lodowej, dokładne wyjaśnienie jak z tego > korzystać, żeby się nie skaleczyć znajdziesz pod linkami: > > https://rhettinger.wordpress.com/2011/05/26/super-considered-super/http://fuhm.net/super-harmful/ > > -- > -^- _ coś tam w tle sobie gra, np: > _ /O)_\// Thomas "Drax" Mogensen - Heaven > (_(|__(_(_) grf. Dziękuję
Technical Details
Message-ID:
<1922c7a0-4a16-4e93-928a-f79cf1636c4e@l15g2000vbv.googlegroups.com>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!news.nask.pl!news.nask.org.pl!news.unit0.net!feeder3.cambriumusenet.nl!feed.tweaknews.nl!postnews.google.com!l15g2000vbv.googlegroups.com!not-for-mailReferences:
<3f7a6aeb-604c-4563-979e-1e26ea3b785c@i8g2000vbm.googlegroups.com> <20120504081250.dc9ec5f2.gryf_esm-no@spam-o2.pl>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!news.nask.pl!news.nask.org.pl!news.unit0.net!feeder3.cambriumusenet.nl!feed.tweaknews.nl!postnews.google.com!l15g2000vbv.googlegroups.com!not-for-mail From: lux <naukasymfony@gmail.com> Newsgroups: pl.comp.lang.python Subject: Re: Funkcja super Date: Sat, 5 May 2012 10:33:13 -0700 (PDT) Organization: http://groups.google.com Lines: 71 Message-ID: <1922c7a0-4a16-4e93-928a-f79cf1636c4e@l15g2000vbv.googlegroups.com> References: <3f7a6aeb-604c-4563-979e-1e26ea3b785c@i8g2000vbm.googlegroups.com> <20120504081250.dc9ec5f2.gryf_esm-no@spam-o2.pl> NNTP-Posting-Host: 77.255.58.212 Mime-Version: 1.0 X-Trace: posting.google.com 1336239280 6292 127.0.0.1 (5 May 2012 17:34:40 GMT) X-Complaints-To: groups-abuse@google.com NNTP-Posting-Date: Sat, 5 May 2012 17:34:40 +0000 (UTC) Complaints-To: groups-abuse@google.com Injection-Info: l15g2000vbv.googlegroups.com; posting-host=77.255.58.212; posting-account=FNkHeQkAAADQRNTtXgagxrxM7VyQbSp3 User-Agent: G2/1.0 X-HTTP-UserAgent: Mozilla/5.0 (X11; Linux i686) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.142 Safari/535.19,gzip(gfe) Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit