Life at the bleeding edge

😀Mind map notes 😀File Vault

😀老男孩 - python入门与提高实践

一定要会的新技术功能

快速交换(Quick swap)

# in python, also works in ES6

s1 = 3
s2 = 4

# Quick swap
s1, s2 = s2, s1

惰性计算(Lazy evaluation)

是指仅仅在真正需要执行的时候才计算表达式的值。

  1. 避免不必要的计算,带来性能的提升。
    对于条件表达式 if x and y,在x为false的情况下y表达式的值将不再计算。而对于if x or y,当x的值为true的时候将直接返回,不再计算y的值。因此编程中可以利用该特性:

    • and 逻辑中,将小概率发生的条件放在前面;
    • or 逻辑中,将大概率发生的时间放在前面,有助于性能的提升。
  2. 节省空间,使得无线循环的数据结构成为可能。
    Python中最经典的使用延迟计算的例子就是生成式表达器了,它在每次需要计算的时候才通过yield产生所需要的元素。
    例:斐波那契数列在Python中实现起来很容易,使用yied对于while True也不会导致其他语言中所遇到的无线循环问题。

def fib():
   a,b = 0,1
   while True:
       yield a
       a,b = b,a+b
               
fib_gen = fib()

for i in range(30):
    print(fib_gen.next())

解构赋值(Destructuring assignment)

# In python

# Destruction
li = (1, 2, 3)
a, b, c = li

print(b)

li1 = [1, 2, 3, 4, 5, 6]
c, *_, d = li1

// In ES6
// we have an array with the name and surname
let arr = ["Ilya", "Kantor"]

// destructuring assignment
let [firstName, surname] = arr;

alert(firstName); // Ilya
alert(surname);  // Kantor

Get details from site ES6 destructuring assignment.

posted @ 2018-08-13 16:47  Clown--  阅读(176)  评论(0编辑  收藏  举报