python3.6 可以 pickle 实例方法 staticmethod classmethod,但文档说 None?

python3.6 can pickle instance method staticmethod classmethod, but document say None?

在python3.6

class C:
    class_var = 'class_var'
    @staticmethod
    def s():
        pass
    @classmethod
    def c(cls):
        pass
    def i(self):
        pass


 import pickle
 pickle.dumps(C.class_var) # ok
 pickle.dumps(C.i) #ok
 pickle.dumps(C.s) # ok
 pickle.dumps(C.c) # ok

但在 python3.4 上面的代码是错误的! 最少的文件对此只字不提。 既不说两个版本 pickleing moudle 改变,也不说 pickleiing 现在可以了。

this patch 降落在 python3.5,这似乎就是您要找的东西。

Here's 关联的提交。

here's python3.5

更新日志中的条目

该补丁简要提到 "unbound methods" 作为一个可能的用例,尽管它主要集中在深度命名空间/嵌套 类.

中的 unpickling