3 ms·
Yeah, overloading to build a little dsl over some objects sort of is something I’ve seen a lot. See airflow: https://stackoverflow.com/questions/52389105/how-o
by stoksc 6y ago
Yeah, overloading to build a little dsl over some objects sort of is something I’ve seen a lot. See airflow:
https://stackoverflow.com/questions/52389105/how-operator-defines-task-dependencies-in-airflow https://stackoverflow.com/questions/52389105/how-operator-de...
When it’s used that way, you’ve lost that the operation is semantically analogous to __le__. I think the assumption it has no side effects goes, too.
Edit: not saying I like it, though.
- duckerude 6y agoOverloading comparison operators like this is a particularly bad idea in Python, because of the "smart" behavior they have baked in. Overloading >> is comparatively safe. Unless you implement __ge__, `'Hello!' >= document` will also call __le__, which may or may not be what you want. And `'Hello!' >= document <= 10` is equivalent to `'Hello!' >= document and document <= 10`, which can lead to confusing surprises. (Brython does implement all of those pitfalls faithfully)