Если вы выполните следующую инструкцию в Python 3.7, она (из моего тестирования) выведет b:
if None.__eq__("a"):
print("b")
Однако None.__eq__("a") оценивается как NotImplemented.
Естественно, "a".__eq__("a") оценивается как True, а "b".__eq__("a") оценивается как False.
Сначала я обнаружил это при тестировании возвращаемого значения функции, но во втором случае ничего не возвращал, поэтому функция вернула None.
Что здесь происходит?