Article View: pl.comp.lang.python
Article #27999Re: Kontrola typów i wartości dla własności
From: Adam Byrtek
Date: Mon, 11 Apr 2011 23:22
Date: Mon, 11 Apr 2011 23:22
26 lines
1955 bytes
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-mailReferences:
<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