'Return deep copy of this object.
:param attributes: Attributes to be set for the returned copy
automatically. For example, ``test.deepcopy(name=\'New name\')``.
See also :meth:`copy`. The difference between these two is the same
as with the standard ``copy.copy`` and ``copy.deepcopy`` functions
that these methods also use internally.
New in Robot Framework 3.0.1.'

def deepcopy(self, **attributes):

    copied = copy.deepcopy(self)
    for name in attributes:
        setattr(copied, name, attributes[name])
    return copied
