定义了一个namedtuple,使用_make创建对象,时间对象会被转成str,这是怎么回事?
from datetime import datetime
from 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()