在3.5.1版本中,`namedtuple`有什么变化吗?

9 浏览
0 Comments

在3.5.1版本中,`namedtuple`有什么变化吗?

在Python 3.5.0上:

from collections import namedtuple
cluster = namedtuple('Cluster', ['a', 'b'])
c = cluster(a=4, b=9)
c
Cluster(a=4, b=9)
vars(c)
OrderedDict([('a', 4), ('b', 9)])

在Python 3.5.1上:

from collections import namedtuple
cluster = namedtuple('Cluster', ['a', 'b'])
c = cluster(a=4, b=9)
c
Cluster(a=4, b=9)
vars(c)
Traceback (most recent call last):
  File "", line 1, in 
TypeError: vars()的参数必须具有__dict__属性

看起来好像是`namedtuple`有所改变(或者可能是`vars()`有所改变?)。

这是有意的吗?我们不再应该使用这种模式将命名元组转换为字典了吗?

0