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 <[email protected]>
<http://bugs.python.org/issue20729>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe:
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com