New submission from Chris Angelico:

Only noticed because I was searching the stdlib for hasattr calls, but in 
mailbox.Mailbox.update(), a check is done thus:

        if hasattr(arg, 'iteritems'):
            source = arg.items()
        elif hasattr(arg, 'items'):
            source = arg.items()
        else:
            source = arg

If this is meant to support Python 2, it should probably use iteritems() in the 
first branch, but for Python 3, it's probably simpler to just drop the first 
check altogether:

        if hasattr(arg, 'items'):
            source = arg.items()
        else:
            source = arg

Or possibly switch to EAFP:

        try:
            source = arg.items()
        except AttributeError:
            source = arg

----------
messages: 211920
nosy: Rosuav
priority: normal
severity: normal
status: open
title: mailbox.Mailbox does odd hasattr() check

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

Reply via email to