pycharm 中的 Python lambda 类型提示

问题描述 投票:0回答:1

我正在使用 Pycharm 开发 python 脚本。

我有一个类列表,想按类属性对该列表进行排序。

但是,当我使用时:

results: list[HotelInfo] = get_result()
results.sort(key=lambda x: x.price)

PyCharm 的类型提示显示“x”是“any”类型,无法获取类属性。

即使我设置了

x: CLASS_NAME
,lambda 似乎也没有显示正确的类型。

如何在 PyCharm 中解决这个问题?

python python-3.x pycharm
1个回答
0
投票

正如 Martijn Pieters 在他的 answer 中指出的那样,您可以输入提示一个可调用对象并将其作为您的函数传递。

results: list[HotelInfo] = get_result()
get_price: Callable[[HotelInfo], int] = lambda hotel: hotel.price
results.sort(key=get_price)

这在本地示例中适用于我,PyCharm 可以识别类型。

strings = ["Hello World", "Goodbye World :(", "Cookies"]

func: Callable[[str], int] = lambda s: len(s)
print(sorted(strings, key=func))
© www.soinside.com 2019 - 2024. All rights reserved.