Conveniently set one or more fields at a time.

        Args:
            *args: Optionally set from other objects, available fields from the passed object are used in order
            **kwargs: Set from given key/value pairs (only names defined in __slots__ are used)

def set(self, *args, **kwargs):
        """Conveniently set one or more fields at a time.

        Args:
            *args: Optionally set from other objects, available fields from the passed object are used in order
            **kwargs: Set from given key/value pairs (only names defined in __slots__ are used)
        """
        if args:
            for arg in args:
                if arg is not None:
                    for name in self.__slots__:
                        self._set(name, getattr(arg, name, UNSET))
        for name in kwargs:
            self._set(name, kwargs.get(name, UNSET))