# 1.命名空间、作用域
# 函数内部赋值的变量默认被分配到局部命名空间,函数执行完毕即被销毁
a = 1
def f():
a=2
return a
f()
a
# 1
# 此时a的值未改变,如果需要改变a,需要用global关键字声明a
def f():
global a
a=2
return a
f()
a
# 2
# 2.返回多个值
def f():
a=1
b=2
return a,b
x,y = f()
x,y
# (1, 2)
# 3.匿名函数(lambda)
# 常用于函数作为参数时
pairs = [('a','C'),('b','A'),('c','B')]
pairs.sort(key = lambda pair:pair[1])
pairs
# [('b', 'A'), ('c', 'B'), ('a', 'C')]
pairs.sort(key = lambda pair:pair[0])
pairs
# [('a', 'C'), ('b', 'A'), ('c', 'B')]
# 4.解包参数列表
# 可变参数与关键字参数相反的调用情况
a = [3,7]
list(range(*a))
# [3, 4, 5, 6]