Python海象运算符(:=)的三种用法
随着Python3.8的发布,赋值表达式运算符(也称为海象运算符)也发布了。运算符使值的赋值可以传递到表达式中。这通常会使语句数减少一个。

本文将详细介绍海象运算符的三种用法。虽然使用海象运算符可以减少代码量,但更重要的是可以提高代码的可读性和可维护性。
While循环
循环似乎是最常见的使用海象运算符的情况。在while语句中使用海象运算符的好处是可以合并表达式和修饰符,使代码更加简洁清晰。例如,将无限循环的传统写法:
line = f.readLine()
while line:
print(line)
line = f.readLine()
转换为使用海象运算符的写法:
while line := f.readLine():
print(line)
使用海象运算符还可以将传统的无限while循环更好地优化,避免了在循环末尾忘记写修改语句的情况。
列表理解
海象运算符对于优化某些列表理解语句也很有帮助。通常,需要满足两个条件:1)需要过滤数据,2)存储taxingfunction的结果。具体示例如下:
scores = [22, 54, 75, 89]
valid_scores = [
longFunction(n)
for n in scores
if longFunction(n)
]
在传统的列表理解语句中,条件语句longFunction(n)被调用了两次,这是可以使用海象运算符进行优化的。
scores = [22, 54, 75, 89]
valid_scores = [
result for n in scores
if (result := longFunction(n))
]
优化后的代码中,longFunction()仅被调用一次,降低了调用次数。
处理返回的数据
海象运算符对于处理返回的数据也非常有用。在处理返回的数据后,可以使用海象运算符检查返回列表是否有数据,避免无谓的代码执行。例如:
# look for failed inspections
# if there are failed inspections, assign to technician
records = api.readFailedRecords()
if len(records) > 0:
for record in records:
api.assignToTechnician(record)
优化后的代码:
# look for failed inspections
# if there are failed inspections, assign to technician
if records := api.readFailedRecords():
for record in records:
api.assignToTechnician(record)
在这种情况下,海象运算符更易于阅读,对代码的可读性和可维护性有很大的提高。
总结
本文介绍了Python海象运算符的三种用法:While循环、列表理解和处理返回的数据。使用海象运算符可以减少代码量,但更重要的是可以提高代码的可读性和可维护性。
原创文章,作者:小编小本本,如若转载,请注明出处:https://www.benjiyun.com/yunzhujiyunwei/vps-yunwei/6820.html
