c语言编程笔录

首页 >   > 笔记大全

笔记大全

Python中的数据类是怎么使用的

更新时间:2023-10-25

Python中的数据类是怎么使用的

Python中自Python 3.7版本以后新增了一种语言特性——数据类(Data Class)。数据类是一种用于声明数据的类,其语法简单,易于阅读和编写。 它通过提供类型注解和属性声明,可以帮助程序员更容易地理解模块的接口。

数据类语法

Python中的数据类可以用一行简单的语句来声明。下面是一个使用数据类语法的类的例子:
from dataclasses import dataclass
@dataclass
class MyClass:
    name: str
    age: int    
这段代码定义了一个名为 `MyClass` 的数据类,其中包括两个属性——`name` 和 `age`,它们分别表示字符串和整数类型的数据。

属性的默认值

数据类中的属性可以有默认值,如果创建类的时候不提供这些属性,它们就会被设置为默认值。 下面我们来看看如何为属性设置默认值。
@dataclass
class MyClass:
    name: str = 'John'
    age: int = 18    
这个例子中我们给 `name` 和 `age` 属性设置了默认值。

数据类的比较操作

数据类中的属性虽然简单,但包含了足够的信息来进行比较操作。数据类支持 ==,!=,<,<=,>,>= 等操作,同时支持 hash() 方法。 当两个数据类实例的所有属性都相等时,这两个实例就被认为是相等的。
@dataclass
class MyClass:
    name: str
    age: int    
a = MyClass('Tom', 25)
b = MyClass('Tom', 25)
a == b   # True
这个例子中,我们比较了两个数据类实例 `a` 和 `b` 的相等性。由于两个实例的 `name` 和 `age` 属性都相等,所以它们被判断为相等。

总结

数据类是 Python 语言中一种非常有用的语法特性,它提供了一种便捷的方式来定义带有属性的类。数据类有许多特性,如属性的默认值、属性的比较操作等。它的语法简洁易读,是许多 Python 程序员的首选声明数据的方式。请注意,在Python 3.7版本之前没有数据类这个东西,但是你可以通过使用 `NamedTuple()` 等其他方式来声明数据。