python对象的id属性
pyid的Python项目详细描述
pyid
将任何python对象转换为具有id
属性的完全等效对象。
示例
importrandomimportpyidmylist=[random.sample(range(10),k=3)foriinrange(20)]# Uses python uuid module to assign ID by defaultmylist=[pyid.idfy(item)foriteminmylist]foriteminmylist:print(item,item.id)# Assign a custom IDmylist=[pyid.idfy(item,'myid')foriteminmylist]foriteminmylist:print(item,item.id)
安装
pip install pyid
动机
当引用相关对象时,我们使用唯一的id。在python中,我们可以通过字典将id映射到对象来处理这个模式,或者使用一个项在列表中的位置作为它的id。这两种情况都要求我们创建独立于对象的变量来表示这些id,并且每次迭代时,我们都通过迭代id dict或枚举函数来显式地包含id。我构建这个是为了测试拥有id属性更简单、更干净的想法。
工作原理
它接受传递对象的type
,创建一个具有id属性的该类型的子类,并将数据从传递对象复制到一个新子类的实例中。如果没有传递自定义id,则使用python uuid模块来分配一个。