Set a variable as in setter
Dave Angel
davea at dejaviewphoto.com
Sun May 24 17:54:57 EDT 2009
Kless wrote:
> On 24 mayo, 12:27, Duncan Booth <duncan.bo... at invalid.invalid> wrote:
>
>> Kless <jonas.... at googlemail.com> wrote:
>>
>>> Is there any way to simplify the next code? Because I'm setting a
>>> variable by default of the same way than it's set in the setter.
>>>
>>> -------------------
>>> class Foo(object):
>>> def __init__(self, bar):
>>> self._bar =elf._change(bar) # !!! as setter
>>>
>> What's wrong with just doing this?:
>> self.bar =ar
>>
>
> Because 'bar' is going to be modified before of be saved.
>
>
You can't modify bar, it's immutable (string).
Did you try the suggestion, or just assume it won't work? self.bar will
call your setter method just as well from __init__() as it does outside
the class. So that eliminates the need for a separate _change() method.
class Foo(object):
def __init__(self, bar):
self.bar = bar
@property
def bar(self):
return self._bar
@bar.setter
def bar(self, text):
self._bar = text + "any change"
More information about the Python-list
mailing list