<0.0>
PYTHON 函数
参数传递
传递方式 | 解释 |
---|---|
位置参数 | 按顺序传递 |
关键参数 | 指定参数名称 |
默认值参数 | 拥有默认值的参数 |
可变长度参数 | *p 传递元组 ,**p 传递字典 |
序列解包
*
可以对序列进行解包。
def test(a,b,c):
return a + b + c
tup = (1, 2, 3)
set = {1, 2, 3}
dic = {1:'a', 2:'b', 3:'c'}
test(*tup)
test(*set)
test(*dic)
dict 对于字典的序列解包
字典对象作为实参的时候默认使用字典的 键值
,若要使用其元素作为参数则需要使用 items()
方法加以解释说明
序列解包传参的优先顺序
- 解包传参相当于传递
位置参数
是优先处理
的 - 同时进行解包传参时,含有关键参数的需要放在最后进行解包
global 关键字
x = 1
def test():
global x
print(x)
隐式的全局变量:无声明只引用无赋值
隐式的局部变量:无声明有赋值
除非显示声明 global
关键字才被认为是全局变量
lambda 表达式
lambda表达式只允许包含一个表达式,表达式的计算结果相当于函数的返回值
lambda常常用来声明匿名函数
lambda + List
L = [(lambda x:x**2),(lambda x:x**3),(lambda x:x**4)]
print(L[0](2),L[1](2),L[2](2))
lambda + map
map 映射
L = [1,2,3,4,5]
print(map((lambda x:x+10),L))
lambda 中执行函数
L = [1,2,3,4,5]
print(map((lambda x:test(x)),L))
lambda 规定排序规则
import random
random.shuffle(data)
data.sort(key = lambda x:x)
data.sort(key = lambda x:len(str(x)))
data.sort(key = lambda x:len(str(x)),reverse = True)
lambda 作用域
- 要注意lambda表达式使用的参数是lambda的局部变量还是全局变量
- 若使用全局变量可能引发错误