pythonredis生成唯一id原理

Python09

pythonredis生成唯一id原理,第1张

pythonredis生成唯一id原理

答:1. 安装toollib 执行命令:pip install toollib

2. 调用方法 from toollib.guid import RedisUid from toollib.redis_cli import RedisCli redis_cli = RedisCli(host='127.0.0.1')

Python生成唯一ID几种方式 - 知乎

1. 原理 Snowflake是Twitter提出的一个算法,其目的是生成一个64位的整数

用于获取对象的内存地址。

我们每一个人都有身份证来证明自己的身份。网络地址也有,那就是id。

网络id可以用来表示计算机属于哪个网络。Python中也有id函数,而Python中每个对象拥有唯一的内存id,所以id函数它主要用于获取指定对象的内存id值,是Python中必不可少的内置函数。Python中id()函数用于获取对象的内存地址。

id(object)返回的是对象的“身份证号”,唯一且不变,但在不重合的生命周期里,可能会出现相同的id值。此处所说的对象应该特指复合类型的对象(如类、list等),对于字符串、整数等类型,变量的id是随值的改变而改变的。

在工作中遇到一个项目的陈年老bug,如图:

bug原因是这里本应该传idx,结果传成了id。

但是这里最有意思的地方来了。

从截图可以看出,这个id并不是入参,也没有定义过,那他直接用怎么不会报参数未定义的语法错误呢?按说函数应该执行不了直接报错,但是实际上整个方法可以执行不会报错。

排查import也没有import id,也没有定义全局变量。那么这个id变量没有在任何地方定义,为什么可以直接使用呢,还不会报语法错误?

经过查阅资料才发现,id在这里其实 不是一个变量,而是一个函数!

查看官方文档可以看到:

所以id()本身是python内置的一个函数,但是因为很少用到,所以很多人并不太清楚。