Чем отличается оператор == от is в Python?

В Питоне есть оператор "==" и есть оператор "is". В чём их разница и когда целесообразнее использвать одно, а когда другое?

Фишка в том, что оператор is возвращает True если 2 переменных ссылаются на один и тот же объект.

== проверяет на равенство значения переменных.

Аналогом is в том же C# является метод Equals, на сколько мне известно, а == и там и там работает аналогично