Revise attributes value with dictionary data.

        :type data: dict
        :type ignore_none: bool

        **中文文档**

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

def revise(self, data, ignore_none=True):
        """
        Revise attributes value with dictionary data.

        :type data: dict
        :type ignore_none: bool

        **中文文档**

        将一个字典中的数据更新到本条文档。当且仅当数据值不为None时。
        """
        if not isinstance(data, dict):
            raise TypeError("`data` has to be a dict!")

        if ignore_none:
            for key, value in data.items():
                if value is not None:
                    setattr(self, key, deepcopy(value))
        else:
            for key, value in data.items():
                setattr(self, key, deepcopy(value))

        return self