Есть ли способ одновременно установить и оценить значение в python? - PullRequest
2 голосов
/ 01 августа 2020

Я новичок в python, но я использовал java и есть трюк , который я использую очень часто, и мне интересно, существует ли он в python

Я сейчас кодирую шахматы, и мне нужно вызвать функцию, чтобы проверить, могу ли я использовать значение, если это так, я буду использовать его. Это будет выглядеть так в java:

int x;
if( isValid(piece, x = piece[1][0]) ) moves.add(x);

Как видите, я устанавливаю новое значение на x, а затем я просто вызываю его, если он мне нужен, это полезно, когда У меня много if предложений, или когда значение, которое я использую, слишком длинное, его будет трудно прочитать.

Есть ли в python что-то подобное?

1 Ответ

4 голосов
/ 01 августа 2020

Эквивалент в python, поскольку вероятность 3.8

if isValid(piece, x:=piece[1][0]):
    moves.add(x)

Оператор «морж» := связывает второй позиционный аргумент с локальной переменной x перед вызовом (назначение есть даже если isValid вызывает исключение). Если «x» является аргументом ключевого слова, он выглядит немного иначе

if isValid(piece, x=(x:=piece[1][0])):
    ...

, поэтому локальный x привязан, а затем аргумент ключевого слова x устанавливается перед вызовом. И, конечно же, имена не обязательно должны совпадать

if isValid(piece, other_keyword_param=(x:=piece[1][0])):
    ...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...