具名元组 collections.namedtuple

2020-05-07  本文已影响0人  RayRaymond

定义

namedtuple 对象的定义:

collections.namedtuple(typename, field_names, verbose=False, rename=False) 

typename:元组名称
field_names: 元组中元素的名称
rename: 如果元素名称中含有 python 的关键字,则必须设置为 rename=True
verbose: 默认就好

实例

import collections

User = collections.namedtuple('User', ['name', 'age', 'id'])
user = User('tester', '22', '464643123')

print(user)
import collections

User = collections.namedtuple('User', 'name age id')
user = User('tester', '22', '464643123')

print(user)

特有属性

from collections import namedtuple

'定义一个namedtuple类型User,并包含name,sex和age属性。'
User = namedtuple('User', ['name', 'sex', 'age'])

'创建一个User对象'
user = User('Runoob', 'male', 12)

'获取所有字段名'
print( user._fields ) 
# ('name', 'sex', 'age')

'也可以通过一个list来创建一个User对象,这里注意需要使用 _make 方法'
user = User._make(['Runoob', 'male', 12]) 
print( user )
# User(name='user1', sex='male', age=12)

'获取用户的属性'
print( user.name )  # Runoob
print( user.sex )   # male
print( user.age )   # 12

'修改对象属性,注意要使用 _replace 方法'
user = user._replace(age=22)
print( user )
# User(name='user1', sex='male', age=21)

'将User对象转换成字典,注意要使用 _asdict'
print( user._asdict() )
# OrderedDict([('name', 'Runoob'), ('sex', 'male'), ('age', 22)])

Reference

[1] https://www.runoob.com/note/25726

上一篇 下一篇

猜你喜欢

热点阅读