1

使用 attrs,我如何指定一个不是类属性的init参数。

例如,CRC8 对象可能会在构造函数中传递一些字节或字节数组,但我不想存储该输入,只需计算 CRC 并存储结果。

此模式是否是适合使用类方法的示例(如此链接中所述)?

http://www.attrs.org/en/stable/init.html#initialization

4

1 回答 1

3

你想要的是一个类方法工厂:

@attr.s
class CRC8:
    checksum = attr.ib()

    @classmethod
    def from_bytes(cls, bytes):
        # compute your CRC
        # checksum = ...
        return cls(checksum)

这使您可以进行适当的制衡。

在这种情况下,我想知道一个函数是否不起作用?与标准库的binascii.crc32().

于 2018-06-04T05:54:58.110 回答