1. 本际云推荐 - 专业推荐VPS、服务器,IDC点评首页
  2. 云主机运维
  3. VPS运维

Python海象运算符(:=)的三种用法

Python海象运算符(:=)的三种用法

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

Python海象运算符(:=)的三种用法

本文将详细介绍海象运算符的三种用法。虽然使用海象运算符可以减少代码量,但更重要的是可以提高代码的可读性和可维护性。

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