在python中是否有一种同时设置和计算值的方法?

在python中是否有一种同时设置和计算值的方法?,python,Python,我是python新手,但我使用过java,有一个技巧我经常使用,我想知道python中是否存在这种技巧 我目前正在编写一个国际象棋,我需要调用一个函数来检查我是否可以使用一个值,如果是这样,我将使用它。在java中看起来是这样的: int x; if( isValid(piece, x = piece[1][0]) ) moves.add(x); 如您所见,我正在将一个新值设置为x,然后我将在需要时调用它,当我有许多if语句时,或者当我使用的值太长以致难以读取时,它非常有用 python有类似

我是python新手,但我使用过java,有一个技巧我经常使用,我想知道python中是否存在这种技巧

我目前正在编写一个国际象棋,我需要调用一个函数来检查我是否可以使用一个值,如果是这样,我将使用它。在java中看起来是这样的:

int x;
if( isValid(piece, x = piece[1][0]) ) moves.add(x);
如您所见,我正在将一个新值设置为x,然后我将在需要时调用它,当我有许多
if
语句时,或者当我使用的值太长以致难以读取时,它非常有用


python有类似的功能吗?

可能与python中的3.8版本相同

if isValid(piece, x:=piece[1][0]):
    moves.add(x)
“walrus”操作符
:=
在调用前将第二个位置参数绑定到局部变量
x
(即使
有效
引发异常,赋值也存在)。如果“x”是一个关键字参数,它看起来有点不同

if isValid(piece, x=(x:=piece[1][0])):
    ...
因此本地
x
被绑定,然后在调用之前设置关键字参数
x
。当然,名字不必匹配

if isValid(piece, other_keyword_param=(x:=piece[1][0])):
    ...
Python3.8中添加了赋值表达式(也称为walrus运算符),是的,但仅在python>=3.8中添加: