次要问题:我不明白为什么Python的namedtuple类型具有_make()函数。据我所知,如果T是使用namedtuple创建的类型,那么
T._make(iterable) and T(* iterable)
Run Code Online (Sandbox Code Playgroud)
是同一回事。那么为什么要使用_make()函数呢?有什么我想念的吗?
具有与T(*iterable). 考虑一下:
a = namedtuple('a', 'x, y')
b = [(x, x) for x in xrange(10)]
map(a._make, b)
Run Code Online (Sandbox Code Playgroud)
当然,你也可以这样做:
[a(*x) for x in b]
Run Code Online (Sandbox Code Playgroud)
但是这种与函数的对应发生在其他地方,比如operatormodule。不过这只是猜测,不知道是不是这个道理_make。
编辑:我找到了更多关于此的信息;按照上一个Stack Overflow 问题中的链接,关于 namedtuple 方法中下划线的原因,我阅读了一个页面,其中指出:
_make() 类方法的灵感来自 Robin Becker 和 Giovanni Bajo,他们指出了一类重要的用例,其中现有序列需要转换为命名元组。
| 归档时间: |
|
| 查看次数: |
2173 次 |
| 最近记录: |