C# style properties in python

Posted by 3D-Grabber on Stack Overflow See other posts from Stack Overflow or by 3D-Grabber
Published on 2010-05-15T19:21:29Z Indexed on 2010/05/15 19:24 UTC
Read the original article Hit count: 212

Filed under:
|
|
|
|

I am looking for a way to define properties in Python similar to C#, with nested get/set definitions.
This is how far I got:

#### definition ####    

def Prop(fcn):
    f = fcn()
    return property(f['get'], f['set'])


#### test ####

class Example(object):

    @Prop
    def myattr():

        def get(self):
            return self._value

        def set(self, value):
            self._value = value

        return locals()  #  <- how to get rid of this?

e = Example()
e.myattr = 'somevalue' 
print e.myattr


The problem with this is, that it still needs the definition to 'return locals()'.
Is there a way to get rid of it?
Maybe with a nested decorator?

© Stack Overflow or respective owner

Related posts about python

Related posts about properties