0
A
回答
2
从理论上说,是的,但你不能创建任何有用的namedtuple的空实例,因为当你创建一个namedtuple类型时,你必须先指定元素的数量。所以你可以有一个空的namedtuple的唯一方法是有一个总是空的namedtuple类型,在这种情况下它没有任何用处。
3
是的,但一般情况下,您可能永远不会看到它发生,因为您为namedtuple
中的每个值指定名称。没有指定名称将允许您创建一个空的元组类型,但是这种类型的就不会是非常有用的,因为它的情况下,将总是为空:
>>> empty = collections.namedtuple("empty", [])
>>> empty()
empty()
>>> bool(empty())
False
2
是的。你可以通过检查一个命名的元组类来看到这一点。
一种方法是使用Python 3.3或更高版本中的._source
或namedtuple()
中的verbose=True
选项来查看指定元组类的源代码。您会看到名称元组扩展为tuple
,并且不会覆盖__nonzero__()
或__len__()
方法。这意味着他们使用与您想象的相同的逻辑tuple
。
您还可以检查指定元组类的__nonzero__
和__len__
属性。你会看到,它已经没有__nonzero__
属性定义,那__len__
属性是一样的一个tuple
:
>>> A = namedtuple('A', ['x'])
>>> A.__len__ == tuple.__len__
True
相关问题
- 1. python对象的布尔上下文
- 2. 在上下文中指定的非布尔型,其中一个条件预计
- 3. 的Python 3布尔
- 4. Python中的布尔值
- 5. Python中的布尔值
- 6. Python中的布尔比较
- 7. 的Python,熊猫,上多指标布尔索引
- 8. 布尔测试在Python中的列表
- 9. Python布尔语句
- 10. Python布尔帮助!
- 11. Python布尔比较
- 12. Python布尔错误?
- 13. 在上下文指定的非布尔类型了条件,预计
- 14. 如何在Python中创建布尔指标矩阵
- 15. 指定一个布尔过滤表达式到python脚本
- 16. Python的布尔声明
- 17. Python的布尔参数3
- 18. Python的布尔逻辑链
- 19. Python的同时(布尔):
- 20. 布尔如何在Python中格式化布尔值?
- 21. 为什么要在布尔上下文中定义$ x && $ x`?
- 22. 在Python中重写'布尔'操作符?
- 23. 在Python熊猫中,布尔操作
- 24. Python布尔方法命名约定
- 25. 在Python中的布尔列表上使用min/max不好?
- 26. PYTHON中的布尔操作符2.7.3
- 27. Python中的布尔运算符
- 28. 布尔如果Python中的语句
- 29. python中的布尔检索模型
- 30. 翻转列表中的Python布尔值
所以,澄清,有用的'namedtuple's总是truthy? – user200783
@PaulBaker:是的,因为他们永远都是非空的。 – BrenBarn