如何将由namedtuple创建的元组子类转换为元组本身?

问题描述:

我使用python,而某些方法需要元组作为它的参数。虽然由namedtuple创建的实例是元组的子类,但似乎仍需要将其转换为元组。
有没有办法将由namedtuple创建的元组子类快速转换为元组?谢谢!如何将由namedtuple创建的元组子类转换为元组本身?

+0

哦不!我想我闻到'type()'。应该使用'isinstance()',或者甚至更好,只需使用鸭子打字。 – 2012-07-11 13:46:20

A namedtuple实例x可以使用tuple(x)转换为元组,但您不需要这样做。如果某些代码只接受元组,但没有namedtuple s,我认为代码被破坏了。 (有可能是需要这种行为的特殊情况,但我现在想不出任何。)

那么,如果我理解问题的权利,你可以使用你的namedtuple作为参数实例化元组:

>>> T = namedtuple('T', 'x y') 
>>> isinstance(tuple(T(1, 2)), tuple) 
True 
>>> 
>>> tuple(T(1,2)) 
(1, 2)