在Python数据类中创建唯一ID

7

我需要一个唯一的(无符号整数)id来标识我的Python数据类。这与this so post非常相似,但没有显式的构造函数。

import attr
from attrs import field
from itertools import count
@attr.s(auto_attribs=True)
class Person:
    #: each Person has a unique id
    _counter: count[int] = field(init=False, default=count())
    _unique_id: int = field(init=False)

    @_unique_id.default
    def _initialize_unique_id(self) -> int:
        return next(self._counter)

有没有更"Pythonic"的解决方案?


1
“unique”到底有多“unique”?你研究过uuid模块吗? - DeepSpace
就计数器而言,我认为itertools.count()非常适合我,但是关于定义静态cpp数据成员的等效机制——我想知道是否有其他方法可以做到。 - OrenIshShalom
在构造函数中递增静态变量是一个不好的主意吗? - user3638162
1个回答


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接