'The a native Python datatype representation of this value
:return:
A unicode string or None'

@property
def native(self):

    if (self.contents is None):
        return None
    if (self._native is None):
        byte_string = self.__bytes__()
        byte_len = len(byte_string)
        cidr_int = None
        if (byte_len in set([32, 16])):
            value = inet_ntop(socket.AF_INET6, byte_string[0:16])
            if (byte_len > 16):
                cidr_int = int_from_bytes(byte_string[16:])
        elif (byte_len in set([8, 4])):
            value = inet_ntop(socket.AF_INET, byte_string[0:4])
            if (byte_len > 4):
                cidr_int = int_from_bytes(byte_string[4:])
        if (cidr_int is not None):
            cidr_bits = u'{0:b}'.format(cidr_int)
            cidr = len(cidr_bits.rstrip(u'0'))
            value = ((value + u'/') + str_cls(cidr))
        self._native = value
    return self._native
