code: def absorb(self, other, ignore_none=True):
          
          if not isinstance(other, self.__class__):
              raise TypeError("`other` has to be a instance of %s!" %
                              self.__class__)
  
          if ignore_none:
              for attr, value in other.items():
                  if value is not None:
                      setattr(self, attr, deepcopy(value))
          else:
              for attr, value in other.items():
                  setattr(self, attr, deepcopy(value))
  
          return self
docs: For attributes of others that value is not None, assign it to self.
  
          :type data: ExtendedBase
          :type ignore_none: bool
  
          **中文文档**
  
          将另一个文档中的数据更新到本条文档。当且仅当数据值不为None时。