【发布时间】:2010-01-02 06:12:36
【问题描述】:
# Example: provide pickling support for complex numbers.
try:
complex
except NameError:
pass
else:
def pickle_complex(c):
return complex, (c.real, c.imag) # why return complex here?
pickle(complex, pickle_complex, complex)
为什么?
以下代码是被调用的pickle函数:
dispatch_table = {}
def pickle(ob_type, pickle_function, constructor_ob=None):
if type(ob_type) is _ClassType:
raise TypeError("copy_reg is not intended for use with classes")
if not callable(pickle_function):
raise TypeError("reduction functions must be callable")
dispatch_table[ob_type] = pickle_function
# The constructor_ob function is a vestige of safe for unpickling.
# There is no reason for the caller to pass it anymore.
if constructor_ob is not None:
constructor(constructor_ob)
def constructor(object):
if not callable(object):
raise TypeError("constructors must be callable")
【问题讨论】:
-
您能否提供更多关于您所看到的行为和预期行为的详细信息?
-
这段代码来自哪里?
-
@Roger,代码来自标准 Python 发行版中的 copy_reg.py 模块。
标签: python pickle complex-numbers