collections.namedtuple
是一个工厂方法,用来创建一个 tuple 子类。
# python2
collections.namedtuple(typename, field_names[, verbose=False][, rename=False])
# verbose = True 对于 Python 初学者来说非常好,创建类型时,会输出类的完整定义,用来学习 Python 类的一些特性。
# 这个参数在 python3.7 版被移除
# python3
collections.namedtuple(typename, field_names, *, rename=False, defaults=None, module=None)
from collections import namedtuple
DBConn = namedtuple('MySQL', ('host', 'port', 'username', 'password', 'db'))
conn = DBConn('localhost', '3306', 'root', '123456', 'test')
conn
# MySQL(host='localhost', port='3306', username='root', password='123456', db='test')
conn._asdict() # python2 输出 OrderedDict 类型
# {'host': 'localhost',
# 'port': '3306',
# 'username': 'root',
# 'password': '123456',
# 'db': 'test'}
conn.__class__
# __main__.MySQL
conn.host
# 'localhost'