您的位置:首页 > 编程语言 > Python开发

python namedtuple

2015-07-13 19:04 585 查看
python standard library介绍了一个叫做namedtuple的东西:

__author__ = 'sfesly'
import collections
Person = collections.namedtuple('Person', 'name age gender')
print('type of Person: %s' % (type(Person)))
bob = Person(name='Bob', age =30, gender='male')
print('\nRepresentation:%s' % (str(bob)))
jane = Person(name='Jane', age=29,gender='female')
print('\nField by name:%s' % (jane.name))
for p in [bob, jane]:
print ('%s is a %d year old %s' % p)
print(bob[2])


这段代码的两点在type(Person),输出为:

  type of Person: <class 'type'>

也就是相当于添加了这样一段定义:

class Person(object):

   def __init__(self, name, age, gender):

      self.name = name

      self.age = age

      self.gender = gender

Person是一个动态生成的类型。

最重要的是,除了像结构体那样可以按field访问之外,它还能像一般的元组那样按索引访问。Person还是元组的子类。

对于习惯C语言中结构体童鞋来说,这个可以说是最好的替代品!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: