我正在使用此代码生成短网址。http://code.activestate.com/recipes/576918/
这个想法是使用 base62 对整数 id 进行编码,并且函数 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?这个按位运算有什么作用?有人可以对我有所了解吗?谢谢。