Dataclass

作者: wit92 | 来源:发表于2020-06-14 17:30 被阅读0次
    from dataclasses import dataclass
    
    @dataclass
    class Position:
        name: str
        lon: float
        lat: float
    

    可以发现,主要作用的是装饰符@dataclass,需要注意,如果想要使用dataclass,需要Python 3.7或更高版本
    使用dataclass的好处是可以节省书写init()等一些常用的实例方法

    这里创造一个Position类,用来显示一个地点的位置

    • 名称:地点的名字
    • lon:经度
    • 纬度:

    新建一个实例来看看:

    >>> pos = Position('Oslo', 10.8, 59.9)
    >>> print(pos)
    Position(name='Oslo', lon=10.8, lat=59.9)
    >>> pos.lat
    59.9
    >>> print(f'{pos.name} is at {pos.lat}°N, {pos.lon}°E')
    Oslo is at 59.9°N, 10.8°E
    

    让我们看看如何给类的属性添加替换值:

    from dataclasses import dataclass
    
    @dataclass
    class Position:
        name: str
        lon: float = 0.0
        lat: float = 0.0
    

    效果和普通的类设置初始值的效果是一样的:

    >>> Position('Null Island')
    Position(name='Null Island', lon=0.0, lat=0.0)
    >>> Position('Greenwich', lat=51.8)
    Position(name='Greenwich', lon=0.0, lat=51.8)
    >>> Position('Vancouver', -123.1, 49.3)
    Position(name='Vancouver', lon=-123.1, lat=49.3)
    

    相关文章

      网友评论

        本文标题:Dataclass

        本文链接:https://www.haomeiwen.com/subject/gdlxxktx.html