このコードを使用して短縮URLを生成しています。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)
なぜエンコードしてからエンベースするのですか?そのビット演算は何をしますか?誰かが私に光を当てることができますか?ありがとう。