蟒蛇
memoryview
做
not support
datetime64
or
timedelta
。好的。但当我尝试创建
memoryview
包含
日期时间64
或
时间增量
,它似乎起作用。。。
除非我将其分配给变量
!
In [19]: memoryview(zeros(10, dtype=[("A", "m8[s]")]))
Out[19]: <memory at 0x7f1d455d6048>
In [20]: x = memoryview(zeros(10, dtype=[("A", "m8[s]")]))
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
ValueError: cannot include dtype 'm' in a buffer
In [21]: x = _19
In [22]: x
Out[22]: <memory at 0x7f1d455d6048>
这严重挑战了我对Python基本工作方式的理解。怎么可能
f()
和
x = f()
考虑到(1)IPythons REPL将输出分配给
_19
无论如何,以及(2)函数/类
内存视图
无法知道调用者将如何处理其输出?
我在Python 3.4.1,numpy 1.10.0.dev+fbcc24f,Linux 2.6.32-431.23.3.el6.x86_64,Scientific Linux 6.6版上运行代码。
编辑
在Python 3.5,numpy 1.10.4上,我得到:
In [50]: memoryview(numpy.zeros(10, dtype=[("A", "m8[s]")]))
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
ValueError: cannot include dtype 'm' in a buffer
During handling of the above exception, another exception occurred:
SystemError Traceback (most recent call last)
<ipython-input-50-5d5ac6c085fa> in <module>()
----> 1 memoryview(numpy.zeros(10, dtype=[("A", "m8[s]")]))
SystemError: <class 'memoryview'> returned a result with an error set
我已经提交了
bug with numpy
,虽然我不太确定这就是问题所在。