🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

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

Re: Funkcja super

#28418
From: lux
Date: Sat, 05 May 2012 17:33
65 lines
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-mail
References: <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