namedtuple简单解析:
1,namedtuple是一个工厂函数,用于创建一个类,该类主要的作用在于方便进行数据初始化,便于通过“对象实例.属性”进行访问
2,返回值为元组的子类,具有元组的一切特性
代码举例如下:
from collections import namedtuple
# namedtuple一般用于数据处理中,其作用是定义了一个简单的类,使我们能够方便的操作数据
"""
一般情况,我们可以定义一个Person类,其属性包含姓名,性别,年龄,住址,通过定义类,不仅会增加代码行数,还占用更多的内存,而若是某个类只是有
大量的属性,而不需要类方法,则可以通过namedtuple来实现,不仅可以减少代码量,还能节省内存。
"""
Person = namedtuple("Person", ["name", "age", "gender", "address"])
person1 = Person("叶曦", 13, "女", "成都市武侯区潮音大道12号附11")
print(person1)
# 类属性 _fields:包含这个类所有字段名的元组
print(person1._fields)
# 通过列表进行初始化操作
person_list = ["叶曦", 13, "女", "成都市武侯区潮音大道12号附11"]
person2 = Person(*person_list)
# 类方法 _make(iterable):接受一个可迭代对象来生产这个类的实例
person21 = Person._make(person_list)
print(person2)
# 通过元组进行初始化操作
person_tuple = ("叶曦", 13, "女", "成都市武侯区潮音大道12号附11")
person3 = Person(*person_tuple)
print(person3)
# 通过字典进行初始化操作
person_dict = {"name": "叶曦", "age": 12, "gender": "女", "address": "成都市武侯区潮音大道12号附11"}
person4 = Person(**person_dict)
print(person4)
print(person4.age)
# 实例方法 _asdict():把具名元组以 collections.OrdereDict 的形式返回,可以利用它来把元组里的信息友好的展示出来
print(person4._asdict())
"""
输出结果:
Person(name='叶曦', age=13, gender='女', address='成都市武侯区潮音大道12号附11')
('name', 'age', 'gender', 'address')
Person(name='叶曦', age=13, gender='女', address='成都市武侯区潮音大道12号附11')
Person(name='叶曦', age=13, gender='女', address='成都市武侯区潮音大道12号附11')
Person(name='叶曦', age=12, gender='女', address='成都市武侯区潮音大道12号附11')
12
{'name': '叶曦', 'age': 12, 'gender': '女', 'address': '成都市武侯区潮音大道12号附11'}
"""