Я заметил, что многие библиотеки в настоящее время, похоже, предпочитают использование строк над переменными типа перечисления для параметров.
Если люди ранее использовали перечисления, например. dateutil.rrule.FR в пятницу, похоже, что это смещено в сторону использования строки (например, "FRI" ).
То же самое в numpy (или pandas, если на то пошло), где searchsorted, например, использует строки (например, side = 'left' или side = 'right') вместо определенного перечисления. Во избежание сомнений, перед python 3.4 это могло быть легко реализовано как перечисление как таковое:
class SIDE:
RIGHT = 0
LEFT = 1
И преимущества переменной типа перечисления ясны: вы не можете пропустить их, не вызывая ошибки, они предлагают правильную поддержку для IDE и т.д.
Так зачем вообще использовать строки, а не придерживаться типов перечислений? Разве это не делает программы более подверженными ошибкам пользователя? Это не похоже на перечисления, создающие накладные расходы - если что-то они должны быть немного более эффективными. Итак, когда и почему произошел сдвиг этой парадигмы?