Я использую этот код для генерации короткого URL. http://code.activestate.com/recipes/576918/
Идея состоит в том, чтобы закодировать целочисленный идентификатор с использованием base62, а функция enbase просто отлично работает.
class UrlEncoder(object):
...
def enbase(self, x, min_length=0):
result = self._enbase(x)
padding = self.alphabet[0] * (min_length - len(result))
return '%s%s' % (padding, result)
Но я не совсем понимаю, для чего этот код:
class UrlEncoder(object):
...
def encode_url(self, n, min_length=0):
return self.enbase(self.encode(n), min_length)
def decode_url(self, n):
return self.decode(self.debase(n))
def encode(self, n):
return (n & ~self.mask) | self._encode(n & self.mask)
Зачем кодировать тогда enbase? Что делает эта побитовая операция?
Может ли кто-нибудь пролить свет на меня? Благодаря.