Python: эквивалент Javascript "||" переопределить неправдивую ценность - PullRequest
4 голосов
/ 18 мая 2010

В Javascript я могу сделать это:

function A(x) { return x || 3; }

Возвращает 3, если x является «неверным» значением, таким как 0, null, false, и возвращает x в противном случае. Это полезно для пустых аргументов, например Я могу сделать A(), и он будет оцениваться как 3.

Есть ли у Python эквивалент? Я думаю, я мог бы сделать один из троичного оператора a if b else c, но мне было интересно, что люди используют для этого.

Ответы [ 2 ]

10 голосов
/ 18 мая 2010

Вы можете использовать or, чтобы сделать то же самое, но вы должны быть осторожны, потому что некоторые неожиданные вещи могут рассматриваться как False в этой договоренности. Просто убедитесь, что вам нужно такое поведение, если вы решите сделать это так:

>>> "" or 1
1
>>> " " or 1
' '
>>> 0 or 1
1
>>> 10 or 1
10
>>> ['a', 'b', 'c'] or 1
['a', 'b', 'c']
>>> [] or 1
1
>>> None or 1
1
5 голосов
/ 18 мая 2010

Ответ or:

def A(x):
    return x or 3
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...