如何根据 PEP8 缩短 lambda 函数?
How shorten lambda function according to PEP8?
我想缩短功能,但不知道该怎么做。
字符串太长。如何修复此代码?
def get_closest_bar(data, user_latitude, user_longitude):
return min(
data['features'],
key=lambda x: sqrt((x['geometry']['coordinates'][1] - user_latitude)**2 + (x['geometry']['coordinates'][0] - user_longitude)**2))
这是一种可能性:
def get_closest_bar(data, user_latitude, user_longitude):
return min(
data['features'],
key=lambda x: sqrt(
(x['geometry']['coordinates'][1] - user_latitude) ** 2 +
(x['geometry']['coordinates'][0] - user_longitude) ** 2))
我使用 PyCharm 作为我的 IDE。我只在上面的自动重新格式化中添加了一件事 PyCharm 为我做的。
使用方括号 ()
表示多行 lambda。这是不鼓励的,你应该有一个函数来替换 lambda。
# USE
def get_closest_bar(data, user_latitude, user_longitude):
def key(x):
return (
sqrt((x['geometry']['coordinates'][1] - user_latitude)**2 +
(x['geometry']['coordinates'][0] - user_longitude)**2)
)
return min(data['features'], key=key)
# INSTEAD OF
def get_closest_bar(data, user_latitude, user_longitude):
key = lambda x: (
sqrt((x['geometry']['coordinates'][1] - user_latitude)**2 +
(x['geometry']['coordinates'][0] - user_longitude)**2)
)
return min(data['features'], key=key)
我想缩短功能,但不知道该怎么做。
字符串太长。如何修复此代码?
def get_closest_bar(data, user_latitude, user_longitude):
return min(
data['features'],
key=lambda x: sqrt((x['geometry']['coordinates'][1] - user_latitude)**2 + (x['geometry']['coordinates'][0] - user_longitude)**2))
这是一种可能性:
def get_closest_bar(data, user_latitude, user_longitude):
return min(
data['features'],
key=lambda x: sqrt(
(x['geometry']['coordinates'][1] - user_latitude) ** 2 +
(x['geometry']['coordinates'][0] - user_longitude) ** 2))
我使用 PyCharm 作为我的 IDE。我只在上面的自动重新格式化中添加了一件事 PyCharm 为我做的。
使用方括号 ()
表示多行 lambda。这是不鼓励的,你应该有一个函数来替换 lambda。
# USE
def get_closest_bar(data, user_latitude, user_longitude):
def key(x):
return (
sqrt((x['geometry']['coordinates'][1] - user_latitude)**2 +
(x['geometry']['coordinates'][0] - user_longitude)**2)
)
return min(data['features'], key=key)
# INSTEAD OF
def get_closest_bar(data, user_latitude, user_longitude):
key = lambda x: (
sqrt((x['geometry']['coordinates'][1] - user_latitude)**2 +
(x['geometry']['coordinates'][0] - user_longitude)**2)
)
return min(data['features'], key=key)