why OR returns True if the first element is True, but ANY still checks all element even if the first element is True
--------------------------------------------------
Rise to the top 3% as a developer or hire one of them at Toptal: https://topt.al/25cXVn
--------------------------------------------------
Music by Eric Matyas
https://www.soundimage.org
Track title: Hypnotic Puzzle3
--
Chapters
00:00 Why Or Returns True If The First Element Is True, But Any Still Checks All Element Even If The First
00:21 Accepted Answer Score 2
00:45 Thank you
--
Full question
https://stackoverflow.com/questions/5678...
--
Content licensed under CC BY-SA
https://meta.stackexchange.com/help/lice...
--
Tags
#python
#avk47
    Rise to the top 3% as a developer or hire one of them at Toptal: https://topt.al/25cXVn
--------------------------------------------------
Music by Eric Matyas
https://www.soundimage.org
Track title: Hypnotic Puzzle3
--
Chapters
00:00 Why Or Returns True If The First Element Is True, But Any Still Checks All Element Even If The First
00:21 Accepted Answer Score 2
00:45 Thank you
--
Full question
https://stackoverflow.com/questions/5678...
--
Content licensed under CC BY-SA
https://meta.stackexchange.com/help/lice...
--
Tags
#python
#avk47
ACCEPTED ANSWER
Score 2
You're correct, any does short-circuit (only evaluates as much as needed) but as @alfasin said, you're creating the 1/0 error when you try and insert it into a list. To show the delayed evaluation, you'd have to do something like what I put in the comments or
def itr():
    yield 1
    yield 1/0
any(itr())  # --> True
or
class ErrorOnBool:
    def __bool__(self):
        raise RuntimeError()
any([1, ErrorOnBool()])   # --> True