如何将由namedtuple创建的元组子类转换为元组本身?
问题描述:
我使用python,而某些方法需要元组作为它的参数。虽然由namedtuple创建的实例是元组的子类,但似乎仍需要将其转换为元组。
有没有办法将由namedtuple创建的元组子类快速转换为元组?谢谢!如何将由namedtuple创建的元组子类转换为元组本身?
答
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)
哦不!我想我闻到'type()'。应该使用'isinstance()',或者甚至更好,只需使用鸭子打字。 – 2012-07-11 13:46:20