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
在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