【问题标题】:How to specify an __init__ argument that is not a class attribute如何指定不是类属性的 __init__ 参数
【发布时间】:2018-11-12 18:19:29
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: python-attrs


    【解决方案1】:

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

    @attr.s
    class CRC8:
        checksum = attr.ib()
    
        @classmethod
        def from_bytes(cls, bytes):
            # compute your CRC
            # checksum = ...
            return cls(checksum)
    

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-30
      • 1970-01-01
      • 1970-01-01
      • 2020-12-25
      • 1970-01-01
      相关资源
      最近更新 更多