Article View: pl.comp.lang.python
Article #27998Re: Kontrola typów i wartości dla własności
From: Waldek M.
Date: Wed, 06 Apr 2011 05:44
Date: Wed, 06 Apr 2011 05:44
29 lines
2233 bytes
2233 bytes
Dnia Tue, 05 Apr 2011 20:50:58 +0200, Rob Wolfe napisał(a): > W takich przypadkach pierwszą opcją, którą trzeba na poważnie > rozważyć jest enkapsulacja. Udostępnianie na zewnątrz własnych > struktur danych (w tym przypadku `_foo`) jest z definicji niedobre. > Po to zdefiniowałeś `_foo` jako składową niepubliczną, aby nikt > nie miał do niej bezpośredniego Setter/getter miały właśnie dołożyć mi warstwę pośredniczącą; taki lukier składniowy, dzięki któremu dostęp byłby maksymalnie prosty i intuicyjny, ale w praktyce na 'setterze' mógłbym kontrolować co i w jaki sposób dostaje się do wewnątrz obiektu. Tyle mojej pięknej idei ;-) która, jak widzę, sprawdziłaby się chyba tylko dla typów prostych. > Skoro tak to API powinno wyglądać jakoś tak: > > def add_value(self, value) > def get_value(self, index) > > Gdy jednak zmiana API nie wchodzi w grę (te miliony użytkowników > na całym świecie), to w tym przypadku jedyną drogą jaką widzę > jest użycie własnego typu. Nie jest to jakiś wielki "overkill", > ale jak dla mnie niezbyt eleganckie rozwiązanie. Czyli jednak wrapper. No nic, przemyślę to jeszcze. Gdyby komuś wpadł do głowy inny pomysł, to ja bardzo chętnie ;) Dzięki. Waldek
Technical Details
Message-ID:
<1qr9jecb9v0qj$.dlg@localhost.localdomain>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.rmf.pl!nf1.ipartners.pl!ipartners.pl!news2.ipartners.pl!not-for-mailReferences:
<y4f0sfs7c4ca.dlg@localhost.localdomain> <87d3l0o7l9.fsf@smsnet.pl>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.rmf.pl!nf1.ipartners.pl!ipartners.pl!news2.ipartners.pl!not-for-mail From: "Waldek M." <wm@localhost.localdomain> Newsgroups: pl.comp.lang.python Subject: Re: Kontrola typów i wartości dla własności Date: Wed, 6 Apr 2011 07:44:43 +0200 Organization: Mojito.pl Lines: 29 Message-ID: <1qr9jecb9v0qj$.dlg@localhost.localdomain> References: <y4f0sfs7c4ca.dlg@localhost.localdomain> <87d3l0o7l9.fsf@smsnet.pl> NNTP-Posting-Host: 89.174.106.129 Mime-Version: 1.0 X-Trace: news2.ipartners.pl 1302068675 17209 89.174.106.129 (6 Apr 2011 05:44:35 GMT) X-Complaints-To: abuse@ipartners.pl NNTP-Posting-Date: 6 Apr 2011 05:44:35 GMT X-Antivirus: avast! (VPS 110405-1, 2011-04-05), Outbound message X-Antivirus-Status: Clean User-Agent: 40tude_Dialog/2.0.15.1pl Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit