🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

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

Re: Kontrola typów i wartości dla własności

#27999
From: Adam Byrtek
Date: Mon, 11 Apr 2011 23:22
26 lines
1955 bytes
On 04/06/2011 07:44 AM, Waldek M. wrote:
> Czyli jednak wrapper. No nic, przemyślę to jeszcze.
> Gdyby komuś wpadł do głowy inny pomysł, to ja bardzo chętnie;)

Tutaj przydaje się "immutability". Zwracanie wewnętrznego obiektu przez 
getter jest bezpieczne tylko wtedy, gdy nie można zmienić jego stanu. W 
tym przypadku można użyć krotki (tuple) zamiast listy[1]. W zależności 
od potrzeb konwersję można przeprowadzić w getterze, albo przechowywać 
obiekt bezpośrednio w postaci zamrożonej. Setter z kolei przed 
modyfikacją wewnętrznej reprezentacji powinien zweryfikować niezmiennik.

Oczywiście operacje typu

   b.foo[1] = 'bar'

będzie trzeba zapisać nieco mniej wygodnie jako

   new_foo = list(b.foo)
   new_foo[1] = 'bar'
   b.foo = new_foo

Pozdrawiam,
Adam

[1] Niektórzy twierdzą, że traktowanie krotek jako zamrożonych list nie 
jest zbyt eleganckie, ale to temat na osobną dyskusję.
Technical Details
Message-ID: <io02fa$g5j$1@inews.gazeta.pl>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!not-for-mail
References: <y4f0sfs7c4ca.dlg@localhost.localdomain> <87d3l0o7l9.fsf@smsnet.pl> <1qr9jecb9v0qj$.dlg@localhost.localdomain>

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!not-for-mail
From: Adam Byrtek <adambyrtek@gmail.com>
Newsgroups: pl.comp.lang.python
Subject: Re: Kontrola typów i wartości dla
 własności
Date: Tue, 12 Apr 2011 01:22:18 +0200
Organization: "Portal Gazeta.pl -> http://www.gazeta.pl"
Lines: 26
Message-ID: <io02fa$g5j$1@inews.gazeta.pl>
References: <y4f0sfs7c4ca.dlg@localhost.localdomain> <87d3l0o7l9.fsf@smsnet.pl> <1qr9jecb9v0qj$.dlg@localhost.localdomain>
NNTP-Posting-Host: rs.ists.pl
Mime-Version: 1.0
X-Trace: inews.gazeta.pl 1302564138 16563 87.239.216.2 (11 Apr 2011 23:22:18 GMT)
X-Complaints-To: usenet@agora.pl
NNTP-Posting-Date: Mon, 11 Apr 2011 23:22:18 +0000 (UTC)
X-User: alpha123
In-Reply-To: <1qr9jecb9v0qj$.dlg@localhost.localdomain>
User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.15) Gecko/20110406 Thunderbird/3.1.9
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit