[Tutor] Getting/setting attributes

bob gailer bgailer at gmail.com
Wed Sep 22 00:16:38 CEST 2010


  On 9/21/2010 5:06 PM, lists wrote:
> Hi tutors,
>
> I'm trying to each myself programming and come from a background in
> system administration with some experience in scripting (so I'm very
> new to it).
>
> Currently I'm grappling with the concept of object orientating
> programming and have a question about setting&  getting attributes.
>
> As I understand it, it makes most sense to set/get the attribute of an
> object using a method rather than doing it directly.

My opinion - unless there is some verification or translation or action 
required it is better (easier, clearer) to just access and assign the 
attribute directly.

> I've been reading various ways of doing this, and the information seems a little
> contradictory.
>
Example, please?
> I've muddled my way through the code below to try and force setting or
> getting the 'address' attribute through the address method rather than
> allowing direct access.
Just because you have a getter and setter does not prohibit direct 
reference to _address.
> Does this make sense to you?
>
>
> class Computer(object):
>
>     def __init__(self):
>         """instantiate the class with default values"""
>         self.address = ""
>
I suggest (if you want to go the setter/getter route that you initialize 
_address, just in case someone tries to reference it without setting it.

>     @property # use the property.getter decorator on this method
>     def address(self):
>         return self._address
>
>     @address.setter #use the property.setter decorator on this method
>     def address(self, addrvalue):
>         self._address = addrvalue
>
> computer1 = Computer()
> computer1.address = "test"
> print computer1.address
>

-- 
Bob Gailer
919-636-4239
Chapel Hill NC



More information about the Tutor mailing list