- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我惊讶地发现 python(版本 3.2.2)拒绝 pickle 一个对象,因为它的字典包含对 Ellipsis
的引用。其他built-in constants , pickle 很高兴与 False
、True
和 None
一起工作,如 pickle documentation 中明确说明的那样, 但也会因 NotImplemented
而窒息。
Python 3.2.2 (default, Sep 5 2011, 21:17:14)
[GCC 4.6.1] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import pickle
>>> pickle.dumps(True)
b'\x80\x03\x88.'
>>> pickle.dumps(False)
b'\x80\x03\x89.'
>>> pickle.dumps(None)
b'\x80\x03N.'
>>> pickle.dumps(Ellipsis)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
_pickle.PicklingError: Can't pickle <class 'ellipsis'>: attribute lookup builtins.ellipsis failed
>>> pickle.dumps(NotImplemented)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
_pickle.PicklingError: Can't pickle <class 'NotImplementedType'>: attribute lookup builtins.NotImplementedType failed
为了完整起见,在不太有用的内置常量中,__debug__
只是一个 bool 值,因此不会造成任何问题; copyright
、license
和 credits
有效(它们的类型是 site._Printer
); quit
和 exit
没有(它们的类型是 site.Quitter
,无法找到,因为它是在函数内部定义的)。
谁能解释为什么这是 - Ellipsis
和 NotImplemented
肯定没有被忽略?我能找到的唯一相关信息是this bug ,它提示 NoneType
(即 type(None)
)不可 picklable。其中一位评论者提到 type(Ellipsis)
和 type(NotImplemented)
不能被 pickle,显然没有注意到它们的实例也不能被 pickle。
最佳答案
python 绝对没有理由不 pickle 像 Ellipsis
和 NotImplemented
这样的东西,坦率地说,不让它们 picklable 导致 python 作为并行/异步的脆弱性语。您可以使用 dill
来 pickle 这些类型的对象,这是 pickle
的替代品。是的,我知道这是一个温和的咆哮,但我认为你的目标代码中的 NotImplemented
不应该阻止你使用 multiprocessing
或并行 python 的其他一些......或保存 python session 的状态以备后用……或其他任何方式。
Python 3.2.5 (default, May 19 2013, 14:25:55)
[GCC 4.2.1 Compatible Apple Clang 4.1 ((tags/Apple/clang-421.11.66))] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import dill
>>> dill.dumps(True)
b'\x80\x03\x88.'
>>> dill.dumps(False)
b'\x80\x03\x89.'
>>> dill.dumps(None)
b'\x80\x03N.'
>>> dill.dumps(Ellipsis)
b'\x80\x03cdill.dill\n_eval_repr\nq\x00X\x08\x00\x00\x00Ellipsisq\x01\x85q\x02Rq\x03.'
>>> dill.dumps(NotImplemented)
b'\x80\x03cdill.dill\n_eval_repr\nq\x00X\x0e\x00\x00\x00NotImplementedq\x01\x85q\x02Rq\x03.'
在这里获取 dill
:https://github.com/uqfoundation/dill
关于python - 为什么不能 pickle Ellipsis 和 NotImplemented?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8973238/
我的文本溢出有问题:省略号 - 它不想与我的网站一起使用。我目前正在学习并且我有这个元素,其中我有带有固定高度文本的 div。我试过 text-overflow: ellipsis 但我似乎无法让它工
这个问题在这里已经有了答案: Limit text length to n lines using CSS (18 个答案) 关闭 10 年前。
我无法得到“文本溢出:省略号;”上类...也许有人可以在这方面给 ma 一些帮助:-) 小例子: http://jsfiddle.net/qKS8p/2/ http 标记: …
我试图强制将一个小 div 中的段落全部排成一行,不换行,并且当它们溢出 div 时用省略号截断。 我使用 white-space:nowrap; 时没有换行,但即使我已将 text-overflow
如何让我的文本填充 的空间标签,然后用省略号将其截断? 您可以在此处查看用于填充文本的“卡片”示例。该卡片的高度固定,为 150 像素,内边距为 20 像素。段落元素在卡片内仅具有固定的空间量,并且
这个问题在这里已经有了答案: Prevent content from expanding grid items (3 个答案) 关闭 3 年前。 当使用 CSS 网格时,我似乎无法使 text-o
以下 fiddle 正确淡出文本,但省略号仍然不透明。 http://jsfiddle.net/Wexcode/TJ7A9/ Incorrect #incorrect { widt
默认情况下,如果我们有 'text-overflow: ellipsis',省略号会在文本中添加 '...',但我的场景需要通过 两颗星 * *。 纯 CSS 如何实现? 注意:需要支持IE9+、ch
如何知道字符串的省略子串和可见子串? fiddle :https://jsfiddle.net/dyfkqhk4/1/ 我想知道: 原始文本:这是一些省略的文本 可见文本:这是 省略文本:一些省略文本
我有这样的东西: text text text text text text div{ width:100px; border: 1px solid black;
这个问题在这里已经有了答案: Fast punctuation removal with pandas (4 个答案) 关闭 4 年前。 我正在使用这段代码,但它不会删除“省略号”: Column
这是例子 #div2 { white-space: nowrap; width: 12em; overflow: hidden; text-overflow: ellipsis;
我有以下 html - http://jsfiddle.net/o8e4n30n/ 14 Cras justo sto odio asdasda sdas
我有一个移动网站的顶部栏,如下所示: 用户可以通过单击他/她的名字来打开个人菜单。当人名很长(蓝色条)时,我想使用 text-overflow: ellipsis 来缩短它。 我让它工作(看起来像蓝色
是否可以在 text-overflow: ellipsis 上设置点的样式? 一个例子是将省略号加粗,例如“Lorem Ips ...” 最佳答案 灵感来自 this answer , 这是一种设置省
我有一个包含一些内部内容的 div,当它溢出时我需要一个省略号。我已经在其他元素上多次执行此操作,但出于某种原因,这并没有达到预期的效果。 此外,我故意留下 white-space:nowrap; 因
在闲逛命名空间时,我注意到一个名为Ellipsis 的奇怪对象,它似乎并没有什么特别之处,但它是一个全局可用的内置函数。 经过搜索,我发现 Numpy 和 Scipy 在切片语法的一些晦涩变体中使用了
这个 CSS: text-overflow: ellipsis; 发生溢出时将 "StartOfLineMiddleOfLineEndOfLine" 更改为 "StartOfLineMiddleOfL
我想在文本上实现showMore类型的文本来代替ellipsis or fade。就像我们可以通过React https://www.npmjs.com/package/react-show-more
我需要一行带有图标的文本,并且如果该行太长,则应以省略号(...)结束。 Breaking to the right 这是我的代码: Flexible _buildAddress() { retu
我是一名优秀的程序员,十分优秀!