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)
网友评论