Я знаю, что короткое замыкание Python работает с функциями. Есть ли причина, по которой он не будет работать, когда две функции объединены в одну? Т.е. почему это короткое замыкание,
>>> menu = ['spam']
>>> def test_a(x):
... return x[0] == 'eggs' # False.
...
>>> def test_b(x):
... return x[1] == 'eggs' # Raises IndexError.
...
>>> test_a(menu) and test_b(menu)
False
тогда как это не так?
>>> condition = test_a and test_b
>>> condition(menu)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<stdin>", line 2, in test_b
IndexError: list index out of range