@@ -0,0 +1,2560 @@
+#!/usr/bin/env python3%0A# -*- coding: utf-8 -*-%0A%0A# Copyright (c) 2015 J%C3%A9r%C3%A9mie DECOCK (http://www.jdhp.org)%0A%0A# Permission is hereby granted, free of charge, to any person obtaining a copy%0A# of this software and associated documentation files (the %22Software%22), to deal%0A# in the Software without restriction, including without limitation the rights%0A# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell%0A# copies of the Software, and to permit persons to whom the Software is%0A# furnished to do so, subject to the following conditions:%0A%0A# The above copyright notice and this permission notice shall be included in%0A# all copies or substantial portions of the Software.%0A %0A# THE SOFTWARE IS PROVIDED %22AS IS%22, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR%0A# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,%0A# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE%0A# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER%0A# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,%0A# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN%0A# THE SOFTWARE.%0A%0A%22%22%22%0AThis snippet test Python properties.%0A%0ASee: https://docs.python.org/3/library/functions.html#property%0A%22%22%22%0A%0Aclass Foo(object):%0A%0A    def __init__(self):%0A        self._x = None%0A%0A    def get_x(self):%0A        print('call get_x from Foo')%0A        return self._x%0A%0A    def set_x(self, value):%0A        print('call set_x from Foo: ', value)%0A        self._x = value%0A%0A    def del_x(self):%0A        print('call del_x from Foo')%0A        del self._x%0A%0A    x = property(get_x, set_x, del_x, %22The 'x' property docstring (Foo).%22)%0A%0Aclass Bar(Foo):%0A%0A    def get_x(self):%0A        print('call get_x from Bar')%0A        return self._x%0A%0A    def set_x(self, value):%0A        super().set_x(value) # if you want to call the parent mutator too (optional)%0A        print('call set_x from Bar: ', value)%0A        self._x = value%0A%0A    def del_x(self):%0A        print('call del_x from Bar')%0A        del self._x%0A%0A    x = property(get_x, set_x, del_x, %22The 'x' property docstring (Bar).%22)%0A%0A%0Adef main():%0A    %22%22%22Main function%22%22%22%0A%0A    foo = Foo() %0A    print(foo.x)%0A    print()%0A%0A    foo.x = 3%0A    print(foo.x)%0A    print()%0A%0A    del foo.x%0A    foo.x = 3%0A    print(foo.x)%0A    print()%0A    %0A    print(Foo.x.__doc__)%0A    print()%0A%0A    bar = Bar() %0A    print(bar.x)%0A    print()%0A%0A    bar.x = 3%0A    print(bar.x)%0A    print()%0A%0A    del bar.x%0A    bar.x = 3%0A    print(bar.x)%0A    print()%0A    %0A    print(Bar.x.__doc__)%0A%0Aif __name__ == '__main__':%0A    main()%0A

Add a snippet (Python).