"return" 三元运算符和 warlus 运算符
"return" with Ternary and warlus operators
为什么当我尝试 return 像这样使用 warlus 和三元运算符 :=
值时:
def get_index(elements: List[int], i: int, boundary: int) -> tp.Optional[int]:
return x := elements[i] if elements[i] > boundary else None
我收到一个错误。
评论表明您不能在 return 语句中使用海象运算符,这是不正确的 - 您只是有语法错误。
这有效,但毫无意义,正如评论中也指出的那样:
from typing import List, Optional
def get_index(elements: List[int], i: int, boundary: int) -> Optional[int]:
return (x := elements[i] if elements[i] > boundary else None)
print(get_index([1, 2, 3], 2, 1))
您只需要在海象赋值周围加上括号,表达式的值就是赋值。
但是,如果您所做的只是 return 那个值,为什么要分配给 x
。相反:
from typing import List, Optional
def get_index(elements: List[int], i: int, boundary: int) -> Optional[int]:
return elements[i] if elements[i] > boundary else None
print(get_index([1, 2, 3], 2, 1))
为什么当我尝试 return 像这样使用 warlus 和三元运算符 :=
值时:
def get_index(elements: List[int], i: int, boundary: int) -> tp.Optional[int]:
return x := elements[i] if elements[i] > boundary else None
我收到一个错误。
评论表明您不能在 return 语句中使用海象运算符,这是不正确的 - 您只是有语法错误。
这有效,但毫无意义,正如评论中也指出的那样:
from typing import List, Optional
def get_index(elements: List[int], i: int, boundary: int) -> Optional[int]:
return (x := elements[i] if elements[i] > boundary else None)
print(get_index([1, 2, 3], 2, 1))
您只需要在海象赋值周围加上括号,表达式的值就是赋值。
但是,如果您所做的只是 return 那个值,为什么要分配给 x
。相反:
from typing import List, Optional
def get_index(elements: List[int], i: int, boundary: int) -> Optional[int]:
return elements[i] if elements[i] > boundary else None
print(get_index([1, 2, 3], 2, 1))