New submission from Hans Polak:

This simple code works, but I have two 'import pickle' lines.

The none working code has one 'import pickle' outside the class definition. 
This raises a Nonetype error in the pickle module, in the __del__ method. I'd 
like to know why and I think it's a bug, or is it?

class Login():
    users = {}
    
    def __init__(self):
        try:
            with open('user.data','rb') as f:
                import pickle
                self.users = pickle.load(f)
#                print('init: {}'.format(self.users))
        except Exception:
            #'user.data' file doesn't exist
            pass

    def __del__(self):
        try:
            with open('user.data','wb') as f:
#                print('del: {}'.format(self.users))
#                print(type(self.users))
#                print(type(f))
                import pickle
                pickle.dump(self.users, f, pickle.HIGHEST_PROTOCOL)
        except Exception as e:
            print('__del__ Shit happened: {}'.format(e))

----------
assignee: docs@python
components: Documentation
messages: 212598
nosy: Hans.Polak, docs@python
priority: normal
severity: normal
status: open
title: Pickle Nonetype
type: behavior
versions: Python 3.2

_______________________________________
Python tracker <rep...@bugs.python.org>
<http://bugs.python.org/issue20836>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to