python

Dataclass

2020-06-14  本文已影响0人  wit92
from dataclasses import dataclass

@dataclass
class Position:
    name: str
    lon: float
    lat: float

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

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

新建一个实例来看看:

>>> 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)
上一篇下一篇

猜你喜欢

热点阅读