Implementing class attribute access methods via pseudo-functi on o verloading.
Doran_Dermot at emc.com
Doran_Dermot at emc.com
Mon Oct 25 07:37:21 EDT 2004
Hi Michael,
First of all thanks for letting some light penetrate the rock I've been
hiding under :-) I'd completely ignored or forgotten about Properties. I'll
study them and see if I like them.
It's interesting to note that you prefer code like: theProblem.title = "The
Title"
However, I wonder if people coming from the Java/C++ world prefer:
theProblem.title( "The Title" )
Obviously the first version is less typing! However, the second version
might feel more natural to Java/C++ programmers. Just an observation!
Cheers and thanks again!!
-----Original Message-----
From: python-list-bounces+doran_dermot=emc.com at python.org
[mailto:python-list-bounces+doran_dermot=emc.com at python.org]On Behalf Of
Michael Hoffman
Sent: 25 October 2004 12:10
To: python-list at python.org
Subject: Re: Implementing class attribute access methods via
pseudo-function o verloading.
Doran_Dermot at emc.com wrote:
> I've seen lots of code in which the attributes of a class are accessed and
> modified using two separate methods. For example:
I think this is a great illustration of what properties can be used for:
http://www.python.org/2.2.2/descrintro.html#property
Then you can reduce your class to:
class Problems:
def __init__(self, refNum):
self._refNum = refNum
This is a LOT less code.
And use theProblem.title, theProblem.problem without any apparent
function calls. As far as those fancy accessor methods go, YAGNI. If you
do need them later, you can always add them:
def _get_title(self):
return self._title
def _set_title(self, title):
assert isinstance(title, basestring)
self._title = title
title = property(_get_title, _set_title)
I would much rather use theProblem.title = "the title" rather than
theProblem.title("the title").
--
Michael Hoffman
--
http://mail.python.org/mailman/listinfo/python-list
More information about the Python-list
mailing list