PythonCharmers/python-future

futurize `__bool__` not implemented for subclasses of dict

Open

#282 建立於 2017年5月5日

在 GitHub 查看
 (0 留言) (0 反應) (0 負責人)Python (1,172 star) (327 fork)batch import
0.20bughelp wanted

描述

If a run futurize on python 2 code containing a subclass of the built in dict, e.g.

class A(dict):
    __nonzero__(self):
    return False

it is translated to

class A(dict):
    __bool__(self):
    return False

However, the __bool__ method is not called in python 2. Seems some other kind of trickery is needed.

For now I'm working around the issue by doing

class A(dict):
    __bool__(self):
    return False
    if sys.version_info[0] == 2:
        __nonzero__ = __bool__

貢獻者指南