С параметрами по умолчанию связана одна интересная особенность: они вычисляются на этапе компиляции модуля в байт-код
Это не так. Определения функций (и классов) "вычисляются" на этапе выполнения. Хотя я не уверен, что имеется в виду под этапом компиляции в байт-код. Насколько я понимаю такого "этапа" нет.
Судя по PEP, ввели не вариант, а новый механизм, потому что используя только orand можно было не всё сделать. Кроме того, что этими механизмами можно записывать условия в выражениях, они больше ничем не связаны. Собственно, варианты с or и and работают только потому, что эти бинарные операции работают лениво, и возвращают для or: первый операнд, если он сводится к True, иначе — второй; для and: первый операнд, если он — False, иначе второй.
очень интересно где вы работали с тех пор. Везде удавалось достигать быстрых релизов?
Это не так. Определения функций (и классов) "вычисляются" на этапе выполнения. Хотя я не уверен, что имеется в виду под этапом компиляции в байт-код. Насколько я понимаю такого "этапа" нет.
Судя по PEP, ввели не вариант, а новый механизм, потому что используя только
or
and
можно было не всё сделать. Кроме того, что этими механизмами можно записывать условия в выражениях, они больше ничем не связаны. Собственно, варианты сor
иand
работают только потому, что эти бинарные операции работают лениво, и возвращают дляor
: первый операнд, если он сводится к True, иначе — второй; дляand
: первый операнд, если он — False, иначе второй.