python如何使用namedtuple和dataclass的方式定义一个类
这篇文章主要介绍了python如何使用namedtuple和dataclass的方式定义一个类,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。
功能简单的类使用 namedtuple 和 dataclass 的方式定义
有时候我们想实现一个类似类的功能,但是没有那么复杂的方法需要操作的时候,这个时候就可以考虑下下面两种方法了。
第一个,namedtuple 又称具名元组,带有名字的元组。它作为 Python 标准库 collections 里的一个模块,可以实现一个类似类的一个功能。
from collections import namedtuple
# 以前简单的类可以使用 namedtuple 实现。
Car = namedtuple('Car', 'color mileage')
my_car = Car('red', 3812.4)
print(my_car.color)
print(my_car)
但是呢,所有属性需要提前定义好才能使用,比如想使用my_car.name,你就得把代码改成下面的样子。
from collections import namedtuple
# 以前简单的类可以使用 namedtuple 实现。
Car = namedtuple('Car', 'color mileage name')
my_car = Car('red', 3812.4,"Auto")
print(my_car.color)
print(my_car.name)
使用 namedtuple 的缺点很明显了。
所以现在更优的方案,那就是 Python3.7 加入到标准库的 dataclass。
其实在 3.6 也可以使用不过需要它被作为第三方的库使用了,使用 pip 安装即可。
使用示例如下:
from dataclasses import dataclass
@dataclass
class Car:
color: str
mileage: float
my_car = Car('red', 3812.4)
print(my_car.color)
print(my_car)
感谢你能够认真阅读完这篇文章,希望小编分享的“python如何使用namedtuple和dataclass的方式定义一个类”这篇文章对大家有帮助,同时也希望大家多多支持编程网,关注编程网行业资讯频道,更多相关知识等着你来学习!
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341