【发布时间】:2018-05-14 10:42:45
【问题描述】:
我已经开始学习 python 中的打字系统,并在定义可挑选的函数参数时遇到了一个问题。不是python中的所有东西都可以腌制,我可以定义一个类型注释说“只接受可以腌制的对象”吗?
起初,这听起来应该是可能的,类似于 Java 的 Serializable,但后来在 python 中没有 Picklable 接口,并且在考虑这个问题时,我发现酸洗是一个固有的运行时任务. What can be pickled 列出了许多可以腌制的东西,不难想象一个不能腌制的 lambda 函数容器,但我想不出事先确定的方法(不触及容器定义)。
我想出的唯一方法是在What can be pickled 中列出的所有内容中定义类似typing.Union[Callable, Iterable, ...] 的内容,但这似乎不是一个好的解决方案。
【问题讨论】:
标签: python-3.x serialization pickle typing