code: def _init_obj_attrs(self, obj, user=False):
          
          for attr in obj.__class__._tx_attrs.values():
  
              if user:
                  # Mangle name to prvent name clashing
                  attr_name = "_txa_%s" % attr.name
              else:
                  attr_name = attr.name
  
              if attr.mult in [MULT_ZEROORMORE, MULT_ONEORMORE]:
                  # list
                  setattr(obj, attr_name, [])
              elif attr.cls.__name__ in BASE_TYPE_NAMES:
                  # Instantiate base python type
                  if self.auto_init_attributes:
                      setattr(obj, attr_name,
                              python_type(attr.cls.__name__)())
                  else:
                      # See https://github.com/textX/textX/issues/11
                      if attr.bool_assignment:
                          # Only ?= assignments shall have default
                          # value of False.
                          setattr(obj, attr_name, False)
                      else:
                          # Set base type attribute to None initially
                          # in order to be able to detect if an optional
                          # values are given in the model. Default values
                          # can be specified using object processors.
                          setattr(obj, attr_name, None)
              else:
                  # Reference to other obj
                  setattr(obj, attr_name, None)
docs: Initialize obj attributes.
          Args:
              obj(object): A python object to set attributes to.
              user(bool): If this object is a user object mangle attribute names.