9 ms·
My explanation was pretty poor, let me rephrase For example, when calling Array((x, y), (z, w)).index((z, w)) the following piece of code is executed bo
by lauriat 6y ago
My explanation was pretty poor, let me rephrase
For example, when calling
Array((x, y), (z, w)).index((z, w))
the following piece of code is executed
bool(Array((x, y)).__eq__((z, w)))
= bool(Array(False, False))
If __bool__ returned whether the Array is nonempty, bool(Array(False, False)) would evaluate to True and the method would wrongly return 0.
You're right that it would be more clear if __bool__ would behave similarly, but since Array computes operations element-wise, it isn't possible.
- wodenokoto 6y agoI think the complaint is that you are using `bool` as a `all()` call on your Arrays. If you used `all()` in your implementation instead, you could be compatible with the idiomatic use of `bool(my_list)` and the _very_ common `if my_list:` structure could be used with Arrays too (like most people probably would expect from a "better list type") Regardless, Pandas struggles with the same problem, so you are at least in good company :)