Python短网址生成器

时间:2011-06-09 05:40:32

标签: python short-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)

为什么编码然后enbase?这种按位操作有什么作用? 有人会对我有所了解吗?感谢。

1 个答案:

答案 0 :(得分:0)

查看整个代码:encode()的净效果是将_encode()应用于最不重要的self.block_size - 该值的许多位。 _encode()似乎可以扭转那些位。这似乎只是一点额外的争抢。代码下面的文档解释了为什么他们正在进行所有这些额外的改组。