[issue24866] Boolean representation of Q/queue objects does not fit behaviour of lists etc.
Changes by Raymond Hettinger raymond.hettin...@gmail.com: -- assignee: - rhettinger nosy: +rhettinger ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue24866 ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue24866] Boolean representation of Q/queue objects does not fit behaviour of lists etc.
Raymond Hettinger added the comment: RDM is correct. Queues having qsize() instead of __len__() was an intentional part of the design. Code relying on the boolean value would be fragile. FWIW, this code is very old (originally designed by Guido when dinosaurs roamed the earth) and it is far too late to alter its API. -- resolution: - rejected status: open - closed ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue24866 ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue24866] Boolean representation of Q/queue objects does not fit behaviour of lists etc.
R. David Murray added the comment: I believe this is intentional; see the documentation of the empty' method for the motivation. The reason for not just reflecting the result of an empty call in __bool__ is that not doing so forces you to use empty, which gives you an opportunity to learn about the lack of guarantees. And every time you use it, or read it in someone else's code, you are reminded that a Queue is *different* from a list in this very important way. -- nosy: +r.david.murray ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue24866 ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue24866] Boolean representation of Q/queue objects does not fit behaviour of lists etc.
New submission from Frunit: Usually, list-like objects return False when they are empty and True when at least one element is in the list. However, Queue (Python 2) resp. queue (Python 3) objects always return True. I am aware of that objects should always return True unless otherwise stated, but as queues are (at least in my perception) related to lists, they should behave similarly in this case. Python3 (similar in Python2): import queue q = queue.Queue() bool(q) True (Should be False, in my opinion; the same for PriorityQueue and LifoQueue) I searched for reasons for returning True in empty Queues, but I could not find any in the net or in the Python docs. -- messages: 248577 nosy: Frunit priority: normal severity: normal status: open title: Boolean representation of Q/queue objects does not fit behaviour of lists etc. type: behavior versions: Python 2.7, Python 3.4 ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue24866 ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com