code: def clone(self, value=univ.noValue, **kwargs):
          
          cloned = univ.Choice.clone(self, **kwargs)
  
          if value is not univ.noValue:
              if isinstance(value, NetworkAddress):
                  value = value.getComponent()
  
              elif not isinstance(value, IpAddress):
                  # IpAddress is the only supported type, perhaps forever because
                  # this is SNMPv1.
                  value = IpAddress(value)
  
              try:
                  tagSet = value.tagSet
  
              except AttributeError:
                  raise PyAsn1Error('component value %r has no tag set' % (value,))
  
              cloned.setComponentByType(tagSet, value)
  
          return cloned
docs: Clone this instance.
  
          If *value* is specified, use its tag as the component type selector,
          and itself as the component value.
  
          :param value: (Optional) the component value.
          :type value: :py:obj:`pyasn1.type.base.Asn1ItemBase`
          :return: the cloned instance.
          :rtype: :py:obj:`pysnmp.proto.rfc1155.NetworkAddress`
          :raise: :py:obj:`pysnmp.smi.error.SmiError`:
              if the type of *value* is not allowed for this Choice instance.