On Thursday, June 30, 2016 at 10:52:50 PM UTC+5:30, Steven D'Aprano wrote: > Okay, if you think that automata cannot be empty, I'll accept that. In that > case, then I'll change my answer and say that __bool__ for automata should > simply return True. All automata should be truthy. >
I am not sure with what tone of voice you are saying that If ... “return True” is about as good -- ie useful -- as (say) def __bool__(self): from random import random return int(2*random()) then I think we agree But then there is a well-established behavior pattern in python captured by the contexts that raise AttributeError/NameError/TypeError etc viz For things that are undefined we are told politely they are undefined IOW Why say something is useless and define it rather than just leave undefined something that is ill-defined. If on the other hand you are giving that “return True”as a serious useful definition? If both you and Chris tripped up on a right definition of an “empty” automaton and regex respectively, I believe it demonstrates that getting boolishness for an arbitrary type right is at least non-trivial. [FWIW My belief: In general its nonsensical] -- https://mail.python.org/mailman/listinfo/python-list