Равенство Питона Проверить Разницу | VPROS.ru

Равенство Питона Проверить Разницу

Предположим, что нам требуется какой-то блок кода, который будет выполнен, когда как ‘A’ и ‘B’ равна, скажем, 5. Тогда мы можем записать как :

if a == 5 and b == 5:     # do something 

Но несколько дней назад, я просто невольно написал аналогичную проверку состояния как :

if a == b and b == 5:     # do something  

что заставило меня задуматься, есть ли разница между ними ? Также, есть и другой способ,

if a == b == 5:     # do something 

Есть ли разница, никакой разницы с точки зрения процесса оценки или выполнение, или Время, затраченное ? а также какой из них лучше или какие лучше использовать?

Это связано с понятием транзитивности ?

One Reply to “Равенство Питона Проверить Разницу”

  1. Это зависит от того. Вы могли бы написать свой собственный __eq__ которое позволяет сравнить себя с инц и вещи:

     class NonNegativeInt(object):    def __init__(self, value):      if value < 0:        raise Exception("Hey, what the...")      self.value = value     def __eq__(self, that):      if isinstance(that, int):        return self.value == that      elif isinstance(that, NonNegativeInt):        return self.value == that.value      else:        raise ArgumentError("Not an acceptible argument", "__eq__", that) 

    что бы работали разные в зависимости от сравнения “B” до “A” и “B” до “инт”. Следовательно, a == b могут быть ложные пока a == 5 and b == 5 может быть правда.

Comments are closed.