如何将此函数从 javascript 转换为 python?

How to convert this function from javascript to python?

有人知道如何将此 javascript 函数转换为 python 吗?

javascript:

function ding(t, a, e, n) {
  return t > a && t <= e && (t += n % (e - a)) > e && (t = t - e + a), t
}

这是我的尝试:

def ding(t, a, e, n):
    return t > a and t <= e and (t + n % (e - a)) > e and (t = (t - e + a)), t

return语法错误 (t = (t - e + a)) 中的“=”,不知道如何解决这个问题。

当给它这些值时:ding(53, 47, 57, 97) 它应该在原始 javascript 函数中 return 50。

是否必须是 one-liner?为什么不把它分成几行:

def ding(t, a, e, n):
    if t > a and t <= e:
        t += n % (e - a)

        if t > e:
            t -= e - a
    
    return t
    
print(ding(53, 47, 57, 97)) # 50

那是因为python不支持将赋值赋值作为赋值。 (t = (t - e + a)) 导致 SyntaxError 而不是返回 (t - e + a).

原始代码上的&&运算符似乎是用来消除if运算符的使用。这应该与它在 JS 上的行为方式相同。

def ding(t, a, e, n):
    if a < t <= e:
        t += n % (e - a)
        if t > e:
            t -= (e - a)
    return t