'Create a copy of a |ASN.1| type or object.
Any parameters to the *clone()* method will replace corresponding
properties of the |ASN.1| object.
Parameters
value : :class:`int`, :class:`str` or |ASN.1| object
Initialization value to pass to new ASN.1 object instead of
inheriting one from the caller.
tagSet: :py:class:`~pyasn1.type.tag.TagSet`
Object representing ASN.1 tag(s) to use in new object instead of inheriting from the caller
subtypeSpec: :py:class:`~pyasn1.type.constraint.ConstraintsIntersection`
Object representing ASN.1 subtype constraint(s) to use in new object instead of inheriting from the caller
namedValues: :py:class:`~pyasn1.type.namedval.NamedValues`
Class instance representing BitString type enumerations
binValue: :py:class:`str`
Binary string initializer to use instead of the *value*.
Example: \'10110011\'.
hexValue: :py:class:`str`
Hexadecimal string initializer to use instead of the *value*.
Example: \'DEADBEEF\'.
Returns
new instance of |ASN.1| type/value'

def clone(self, value=noValue, tagSet=None, subtypeSpec=None, namedValues=None, binValue=noValue, hexValue=noValue):

    isModified = False
    if (((value is None) or (value is noValue)) and (binValue is noValue) and (hexValue is noValue)):
        value = self._value
    else:
        isModified = True
    if ((tagSet is None) or (tagSet is noValue)):
        tagSet = self._tagSet
    else:
        isModified = True
    if ((subtypeSpec is None) or (subtypeSpec is noValue)):
        subtypeSpec = self._subtypeSpec
    else:
        isModified = True
    if ((namedValues is None) or (namedValues is noValue)):
        namedValues = self.__namedValues
    else:
        isModified = True
    if isModified:
        return self.__class__(value, tagSet, subtypeSpec, namedValues, binValue, hexValue)
    else:
        return self
