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