Using properties

tkpmep at hotmail.com tkpmep at hotmail.com
Wed May 25 10:06:06 EDT 2005


I have a class with a name attribute, which I want to modify using
property.The following code works just fine:

class Portfolio(object):

    def __init__( self, name="Port1"):
        self.name=name

    def getname(self):
        return self._name

    def setname(self,newname="Port2"):
        self._name=newname

    name=property(getname,setname,None,None)

However, it no longer works if I modify getname and setname to

    def getname(self):
        return self.name

    def setname(self,newname="Port2"):
        self.name=newname

Why is it so critical to have getname and setname modify _name and not
name? The constructor does not make name a private attribute, so why do
getname and setname have to treat it as such?

Thomas Philips




More information about the Python-list mailing list