For attributes of others that value is not None, assign it to self.

        :type data: ExtendedBase
        :type ignore_none: bool

        **中文文档**

        将另一个文档中的数据更新到本条文档。当且仅当数据值不为None时。

def absorb(self, other, ignore_none=True):
        """
        For attributes of others that value is not None, assign it to self.

        :type data: ExtendedBase
        :type ignore_none: bool

        **中文文档**

        将另一个文档中的数据更新到本条文档。当且仅当数据值不为None时。
        """
        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