python编程基础之二十六

偏函数:当一个函数有大量的参数时候,调用时候非常不方便,于是就可以用偏函数解决,将一些参数固定(默认值),达到简化函数调用的目的

使用偏函数需要导入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()
View Code
#2.如果要修改函数作用域中的变量,则使用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
nonlocal
原文地址:https://www.cnblogs.com/higer666/p/9441618.html