[issue28250] typing.NamedTuple instances are not picklable Two
Kurt Dally
report at bugs.python.org
Sat Sep 24 13:07:45 EDT 2016
Kurt Dally added the comment:
My bad, I searched and found the issue, it very closely fit mine and the pickle module is new to me. I hadn't yet got through the details of pickling. Thanks for catching that.
Kurt
From: Mark Dickinson <report at bugs.python.org>
To: thedomesticdog at yahoo.com
Sent: Saturday, September 24, 2016 1:43 AM
Subject: [issue28250] typing.NamedTuple instances are not picklable Two
Mark Dickinson added the comment:
I don't think this has anything to do with namedtuple; it's true whenever you create a class in an inner scope (rather than at module level). This is by design, and these restrictions are documented: https://docs.python.org/3.6/library/pickle.html#what-can-be-pickled-and-unpickled
For example, running this script:
import pickle
def my_func():
class A:
pass
a = A()
return a
a = my_func()
pickle.dumps(a)
produces:
Traceback (most recent call last):
File "test.py", line 11, in <module>
pickle.dumps(a)
AttributeError: Can't pickle local object 'my_func.<locals>.A'
----------
nosy: +mark.dickinson
resolution: -> not a bug
status: open -> closed
_______________________________________
Python tracker <report at bugs.python.org>
<http://bugs.python.org/issue28250>
_______________________________________
----------
_______________________________________
Python tracker <report at bugs.python.org>
<http://bugs.python.org/issue28250>
_______________________________________
More information about the Python-bugs-list
mailing list