点击上方“CVer”,选择加"星标"或“置顶”
重磅干货,第一时间送达
前几个月发布的 Python 3.8 包含了一项重要的新功能,即海象算子。 如果合理运用,该算子能有效地提升 Python 程序的执行效率。 本文将对海象算子的作用和效果进行介绍,并会通过示例演示其使用方法和不适用的场景。 本文作者为软件工程师 Animesh Gaitonde。
countries = [“India”, “USA”, “France”, “Germany”]
if len(countries) < 5:
print ("Length of countries is " + len(countries))
country_size = len(countries)
if country_size < 5:
print ("Length of countries is " + country_size)
if country_size := len(countries) < 5 :
print ("Length of countries is " + country_size)
powers = [get_count(), get_count()**2, get_count()**3]
def get_count():
"Fetches count of records from a database"
powers =[result:= get_count(), result**2, result**3]
def get_count():
"Fetches count of records from a database"
employees = []
for id in employee_ids:
employee = fetch_employee(id)
if employee:
employees.append(employee)
employees = [result for id in employee_ids if (result:= fetch_employee(id))]
chunk = file.read(256)
while chunk:
process(chunk)
chunk = file.read(256)
while chunk := file.read(256) :
process(chunk)
obj = re.match(info).group(1) if re.match(info) else None
obj = match.group(1) if match:= re.match(info) else None
a = 5 # 有效
a := 5 # 无效
empty_list = [] # 有效
empty_list := [] # 无效
a += 5 # 有效
a :+=5 # 无效
(lambda: a:= 5) # 无效
lambda: (a := 5) # 有效但无用
(var := lambda: 5) # 有效
句法变化问题:开发者们为 := 提议了多种替代方案,比如「表达式 -> NAME」、「NAME -> 表达式」、「{表达式} NAME」等等。少数人建议使用现有的关键字,其他人则使用了新的算子。
后向兼容问题:这个特性无法向后兼容,也无法运行在之前的 Python 版本上。
算子名称问题:人们建议不要使用「海象算子」这样的代号,而是使用「赋值算子」、「命名表达式算子」、「成为算子」等术语,以免人们不明白。
重磅!CVer-学术交流群已成立
扫码可添加CVer助手,可申请加入CVer大群和细分方向群,细分方向已涵盖:目标检测、图像分割、目标跟踪、人脸检测&识别、OCR、姿态估计、超分辨率、SLAM、医疗影像、Re-ID、GAN、NAS、深度估计、自动驾驶、强化学习、车道线检测、模型剪枝&压缩、去噪、去雾、去雨、风格迁移、遥感图像、行为识别、视频理解、图像融合、图像检索等群。
一定要备注:研究方向+地点+学校/公司+昵称(如目标检测+上海+上交+卡卡),根据格式备注,可更快被通过且邀请进群
▲长按加群
▲长按关注我们
麻烦给我一个在看!