Для VS 2015 я нашел расширение , которое делает именно это. Кажется, что он работает хорошо и имеет достаточно большой объем загрузок. Поэтому, если вы не можете или не хотите использовать Resharper, вы можете установить этот вариант.
UPDATE
Вы также можете приобрести его через nuget
Для всех встроенных объектов Python (таких как строк, списков, dicts, функций, и т.д.), если x равно y, то x==y также будет истинным.
Не всегда. NaN является контрпримером. Но обычно, тождество (есть
) подразумевает равенство (==
). Обратное не верно: два разных объекта могут иметь одинаковое значение.
Кроме того, считается ли, что по умолчанию лучше просто использовать '==', даже даже при сравнении значений int или Boolean?
Вы используете ==
при сравнении значений и is
при сравнении тождеств.
При сравнении ints (или неизменяемых типов в целом) вы практически всегда хотите использовать первое. Существует оптимизация, позволяющая сравнивать небольшие целые числа с помощью is
, но не стоит на нее полагаться.
Для булевых значений вообще не следует выполнять сравнение. Вместо:
if x == True:
# do something
пишите:
if x:
# do something
Для сравнения с None
, is None
предпочтительнее, чем == None
.
Мне всегда нравилось использовать 'is', потому что я нахожу его более эстетически приятным и питоническим (вот как я попал в в эту ловушку...), но мне интересно, предназначен ли он предназначен только для тех случаев, когда вы заботитесь о поиске двух объектов с одинаковым идентификатором.
Да, именно для этого.
Я хотел бы показать небольшой пример того, как is
и ==
задействованы в неизменяемых типах. Попробуйте так:
a = 19998989890
b = 19998989889 +1
>>> a is b
False
>>> a == b
True
is
сравнивает два объекта в памяти, ==
сравнивает их значения. Например, вы можете увидеть, что маленькие целые числа кэшируются Python:
c = 1
b = 1
>>> b is c
True
Вы должны использовать ==
при сравнении значений и is
при сравнении тождеств. (Также, с английской точки зрения, "equals" отличается от "is")
См. Этот вопрос
Ваша логика чтения
Для всех встроенных объектов Python (например, строки, списки, диктовки, функции, и т. д.), если x равно y, то x == y также Правда.
немного ошибочен.
Если имеет значение
, то ==
будет истинным, но НЕ применяется в обратном порядке. ==
может дать True, а is
дает False.