[PyQt] dip model types, properties, and syntax

Darren Dale dsdale24 at gmail.com
Mon Aug 9 14:45:12 BST 2010


I have a question about using dip model attributes as properties. The
documentation at
http://www.riverbankcomputing.com/static/Docs/dip/model_tutorial.html#attributes-are-properties
gives an example:

class ExampleModel(Model):

    name = Str

    def _get_name(self):
        return self._name

    def _set_name(self, value):
        self._name = value

    # method taken from previous section in documentation:
    def _default_name(self):
        import name_database
        return name_database.most_common_name()


Would it be possible for dip's model types to support the property
decorator syntax introduced in Python-2.6? If so, the above example
could then be implemented as:

class ExampleModel(Model):

    name = Str

    @name.getter
    def name(self):
        return self._name

    @name.setter
    def name(self, value):
        self._name = value

    @name.default
    def name(self):
        import name_database
        return name_database.most_common_name()

The virtue, aside from reusing an already familiar pattern in the
standard library, is that the ExampleModel namespace has fewer exposed
private methods, which is desirable for models intended to be used and
inspected in an interactive python environment like IPython.

Thank you,
Darren


More information about the PyQt mailing list