为什么namedtuple的_make方法把datetime object转成了str
定义了一个namedtuple,使用_make创建对象,时间对象会被转成str,这是怎么回事?
from datetime import datetimefrom collections import namedtuple
MyTuple = namedtuple('MyTuple', 'time')
my_tuple = MyTuple._make({'time': datetime.now()})
my_tuple2 = MyTuple(time=datetime.now())
print(type(my_tuple.time))
print(type(my_tuple2.time))
结果分别是
<class 'str'><class 'datetime.datetime'>
这两者不应该一样吗?或者说_make为什么要做这种转换
回答:
没转换..._make()
方法接收的是一个iterable
当字典作为一个iterable
时,实际上是key
的迭代器...
所以my_tuple.time
存的是"time"这个字符串(也就是dict的key),而不是datetime.now()
以上是 为什么namedtuple的_make方法把datetime object转成了str 的全部内容, 来源链接: utcz.com/p/937810.html