Подтвердить что ты не робот

Что означает "переменная или 0" в python?

В чем смысл следующего выражения в python:

x = variable_1 or 0

variable_1 - это объект. Какое значение имеет значение x выше? И каков тип x?

4b9b3361

Ответ 1

Если variable_1 оценивается как False, x устанавливается в 0, в противном случае - variable_1

Подумайте об этом как

if variable_1:
  x = variable_1
else:
  x = 0

Ответ 2

x будет 0, если variable_1 оценивается как false, иначе оно будет variable_1

>>> 'abc' or 0
'abc'
>>> '' or 0
0
>>> ['a', 'b', 'c'] or 0
['a', 'b', 'c']
>>> [] or 0
0

Ответ 3

x будет инициализирован до variable_1, если его значение не равно None или False

простой пример:

>>> a = None
>>> b = 2
>>> a or 0
0
>>> b or 0
2

Ответ 4

x = variable_1 or 0

Это означает, что если variable_1 оценивается как False (т.е. считается "пустым" - см. документацию по магическому методу __nonzero__), то 0 присваивается x.

>>> variable_1 = 'foo'
>>> variable_1 or 0
'foo'
>>> variable_1 = ''
>>> variable_1 or 0
0

Это эквивалентно "если переменная_1 установлена ​​на что-то непустое, то используйте ее значение, иначе используйте 0".

Тип x - это либо тип variable_1, либо int (поскольку 0 - int).