🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.objects
Article #15059

Re: Wyj?tki w konstruktorze

#15059
From: Piotr Dembiński
Date: Thu, 31 Aug 2006 18:53
45 lines
2561 bytes
Sektor van Skijlen <ethouris@guess.if.gmail.com.is.valid.or.invalid> writes:

> Dnia Thu, 31 Aug 2006 19:30:30 +0200, Piotr Dembiński skrobie:
>> Sektor van Skijlen
>> <ethouris@guess.if.gmail.com.is.valid.or.invalid> writes:
>
>> [...]
>
>> > Tyle że pojedyncze dziedziczenie w Smalltalku jest
>> > usprawiedliwione jego konstrukcją obiektowości: jeśli klasa
>> > danego obiektu nie rozpoznaje danej metody, to kieruje ją do
>> > klasy bazowej.
>
>> W Pythonie klasy bazowe tworzą krotkę (entkę), która jest przez
>> interpreter przeszukiwana od lewej do prawej.
>
> No bo w Pythonie akurat też jest tak.

IMO bardzo proste i dzięki temu dobre rozwiązanie problemu wielu metod
o takich samych sygnaturach w więcej niż jednej klasie nadrzędnej.
Jedyny problem jest z tym, że Python nie rozpoznaje sygnatur metod, 
a jedynie identyfikatory (nazwy), przez co poniższy kawałek kodu nie 
zadziała tak, jak mógłby się tego spodziewać programista C++:

<code>

class Super_1:
    def foo(self, x):
        return 42 + x

class Super_2:
    def foo(self):
        return 'foo'

class A(Super_1, Super_2):
    pass

a = A()
a.foo()

</code>


-- 
http://www.piotr.dembiński.prv.pl
Technical Details
Message-ID: <87lkp4hh40.fsf@hector.domek>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!not-for-mail
References: <1156145142.606030.39100@m73g2000cwd.googlegroups.com> <i0b3f25nvj9fr6ats7kjvntr20g3gsruiu@4ax.com> <ecsal7$vje$2@tkdami.pl> <lic3f2thihtcitu6eavf9p8q485e6n4aeg@4ax.com> <ecsg43$c0h$1@tkdami.pl> <ecsoqp$l6f$1@inews.gazeta.pl> <ect3d4$jg4$1@tkdami.pl> <ectapn$mcg$1@inews.gazeta.pl> <ecuen4$cra$1@tkdami.pl> <ecvh3d$24i$1@inews.gazeta.pl> <ed3lkl$ob0$1@tkdami.pl> <ed591i$a5i$1@inews.gazeta.pl> <ed6gsq$75$1@inews.gazeta.pl> <ed6vtt$jq4$1@kujawiak.man.lodz.pl> <87irk8izih.fsf@hector.domek> <ed76bi$3ts$3@kujawiak.man.lodz.pl>

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!not-for-mail
From: Piotr Dembiński <pdemb@gazeta.pl>
Newsgroups: pl.comp.objects
Subject: Re: Wyj?tki w konstruktorze
Date: Thu, 31 Aug 2006 20:53:19 +0200
Organization: "Portal Gazeta.pl -> http://www.gazeta.pl"
Lines: 45
Message-ID: <87lkp4hh40.fsf@hector.domek>
References: <1156145142.606030.39100@m73g2000cwd.googlegroups.com> <i0b3f25nvj9fr6ats7kjvntr20g3gsruiu@4ax.com> <ecsal7$vje$2@tkdami.pl> <lic3f2thihtcitu6eavf9p8q485e6n4aeg@4ax.com> <ecsg43$c0h$1@tkdami.pl> <ecsoqp$l6f$1@inews.gazeta.pl> <ect3d4$jg4$1@tkdami.pl> <ectapn$mcg$1@inews.gazeta.pl> <ecuen4$cra$1@tkdami.pl> <ecvh3d$24i$1@inews.gazeta.pl> <ed3lkl$ob0$1@tkdami.pl> <ed591i$a5i$1@inews.gazeta.pl> <ed6gsq$75$1@inews.gazeta.pl> <ed6vtt$jq4$1@kujawiak.man.lodz.pl> <87irk8izih.fsf@hector.domek> <ed76bi$3ts$3@kujawiak.man.lodz.pl>
NNTP-Posting-Host: dhz89.neoplus.adsl.tpnet.pl
Mime-Version: 1.0
X-Trace: inews.gazeta.pl 1157049573 20334 83.23.207.89 (31 Aug 2006 18:39:33 GMT)
X-Complaints-To: usenet@agora.pl
NNTP-Posting-Date: Thu, 31 Aug 2006 18:39:33 +0000 (UTC)
Cancel-Lock: sha1:syh2ExIUdteMUR3yfXC8o6K4RoI=
X-User: pdemb
User-Agent: Gnus/5.1007 (Gnus v5.10.7) Emacs/21.4 (gnu/linux)
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit