偏函数:当一个函数有大量的参数时候,调用时候非常不方便,于是就可以用偏函数解决,将一些参数固定(默认值),达到简化函数调用的目的
使用偏函数需要导入functools
import functools
def test(a,b,c,d):
print(a, b, c, d)
#从前面固定参数,使用位置参数就行,1=>a,2=>b
test1 = functools.partial(test,1,2)
test1(3,4) #3=>c 4=>d
变量的作用域:作用域分为局部作用域Local,闭包作用域Enclosing,全局作用域Global,内建作用域Built-in
变量作用域查找顺序是:L --> E --> G --> B
golbal 和 nonlocal
#1.在Python中,当内部作用域想修改外部作用域的变量的时候,则就要使用global关键字进行声明
a = 10 def test(): global a a = a + 1 print(a) test()
#2.如果要修改函数作用域中的变量,则使用nonlocal
#需要明确的是,nonlocal关键字定义在闭包里面
#需要明确的是,nonlocal关键字定义在闭包里面
1 x = 0 #全局作用域 2 3 def outer(): 4 x = 1 #函数作用域 5 6 def inner(): 7 nonlocal x 8 x = 2 #局部作用域 9 print("inner:",x) #2 10 11 inner() 12 print("outer:",x) #1---->2 13 14 outer() 15 print("全局:",x) #0