Is a "real" C-Python possible?

Christian Heimes lists at cheimes.de
Wed Dec 12 13:12:44 EST 2007


Kay Schluehr wrote:
> class A(object):
>     foo = property:
>         def fget(self):
>             return self._foo
>         def fset(self, value):
>             self._foo = value
> 
> which was translated as follows:
> 
> class A(object):
>     def thunk():
>         def fget(self):
>             return self._foo
>         def fset(self, value):
>             self._foo = value
>         return vars()
>     foo = propery(**thunk())
>     del thunk

Python 2.6 and 3.0 have a more Pythonic way for the problem:

class A(object):
    @property
    def foo(self):
        return self._foo

    @foo.setter
    def foo(self, value)
        self._foo = value

    @foo.deletter
    def foo(self)
        del self._foo

class B(A):
    # one can even overwrite the getter in a subclass
    @foo.getter
    def foo(self):
        return self._foo * 2

Christian



More information about the Python-list mailing list