Article View: pl.comp.objects
Article #15059Re: Wyj?tki w konstruktorze
From: Piotr Dembiński
Date: Thu, 31 Aug 2006 18:53
Date: Thu, 31 Aug 2006 18:53
45 lines
2561 bytes
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-mailReferences:
<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