def _getter(self, obj):
        """Called when the parent element tries to get this property value.

        :param obj: parent object.
        """
        result = None

        if self._fget_ is not None:
            result = self._fget_(obj)

        if result is None:
            result = getattr(obj, self._attrname(), self._default_)

        # notify parent schema about returned value
        if isinstance(obj, Schema):
            obj._getvalue(self, result)

        return result