| n | class Combined: | n | class Mixed: | 
             |  |  |  | 
            | n |     def __init__(self, *components): | n |     def __init__(self, *objects): | 
             |         for component in components: |  |         for obj in objects: | 
             |             for attribute in dir(component): |  |             for attr in dir(obj): | 
             |                 if not attribute.startswith('_'): |  |                 if not attr.startswith('_'): | 
             |                     value = getattr(component, attribute) |  |                     value = getattr(obj, attr) | 
             |                     if not callable(value): |  |                     if not callable(value): | 
            | n |                         setattr(self, attribute, value) | n |                         setattr(self, attr, value) | 
             |  |  |  | 
            | n |     def __repr__(self): | n |     def __str__(self): | 
             |         properties = {key: value for key, value in vars(self).items()} |  |         attrs = {k: v for k, v in self.__dict__.items()} | 
             |         ordered_properties = sorted(properties.items()) |  |         sorted_attrs = sorted(attrs.items()) | 
             |         return ', '.join((f'{key}={value}' for key, value in ordered_pro |  |         return ', '.join((f'{k}={v}' for k, v in sorted_attrs)) | 
             | perties)) |  |   | 
             |  |  |  | 
            | t | def mix(*components): | t | def mix(*objects): | 
             |     return Combined(*components) |  |     return Mixed(*objects) |