龙空技术网

Python自学 函数的其他知识点(内嵌函数及闭包)

埃尘尘尘 667

前言:

如今我们对“python内嵌”大概比较珍视,我们都想要学习一些“python内嵌”的相关知识。那么小编在网络上搜集了一些关于“python内嵌””的相关资讯,希望看官们能喜欢,小伙伴们一起来学习一下吧!

1;内嵌函数,2;闭包【这些内容在初学阶段,属于非必学有较高难度

先回顾全局变量和局部变量:

函数的作用域:全局变量,局部变量

# 函数体内是局部变量def ceshi():    x=110    print(x)# 我们都知道调用函数会出现的是 110ceshi()# 函数体外是全局变量# 我们尝试在函数体外部去访问x# 是无法访问的,这就是作用域。print(x)

全局变量和局部变量通过数字来展示:

全局变量可以影响局部变量,局部变量无法影响全局变量。

global() 可修改全局变量;

这是全局变量:x=30def ceshi():    global x    x=40    print(x)    # 调用函数之后X变成了40 ceshi()

函数的嵌套:

尝试在外部函数里调用内部函数的值,是无法实现的!

如果要在外部调用内部函数的值;需要这样操作:

def ceshi():    x=110    def ceshi1():        x=80        print(x)    ceshi1()# 调用外部函数体才能显示 内部函数体的值,这就是嵌套函数# 显示80ceshi()

再来看一些题目:会显示 Python进阶内容有难度了呀! 这句话吗?

def ceshi():    print('Python基础并不难学')    def ceshi1():        print('python进阶内容有难度了呀!')ceshi1()

1;如果不会,要怎么样才能打印第二段内容呢?

#方法1def ceshi():    print('Python基础并不难学')    def ceshi1():        print('python进阶内容有难度了呀!')		# 调用第二个函数    ceshi1()# 调用第一个函数ceshi()
# 方法2def ceshi():    print('Python基础并不难学')    def ceshi1():        print('python进阶内容有难度了呀!')		# 这个return 是作用于ceshi()的,注意缩进,    # 让内嵌函数返回 内嵌函数要打印的内容即可    return ceshi1()ceshi()

再来一些例子加深对嵌套函数的理解:

1;下面的内容能把 我爱Python 这个函数调用出来吗? 要怎么操作才行?

def ceshi():    def ceshi1():        print('我爱Python')    return ceshi1()

需要这样写:这些例子都是为了理解函数的执行顺序!!

def ceshi():    def ceshi1():        print('我爱Python')    # 因为要打印我爱Python    # 所以定要调用函数ceshi1    return ceshi1()# 如果要调用函数ceshi1# 就必须调用函数ceshi,才行。因为是内嵌函数。ceshi()

闭包:类似于类与对象的操作。

def ceshi(x):    def ceshi1(y):        print(f'在局部变量里x是{x},y是{y}')        return x*y    return ceshi1# x的形参是8,并把x赋值给a1a1=ceshi(8)# y的参数是2print(a1(2))

再来试试乘方:

def ceshi(a):    def ceshi1(b):        # 调用ceshi1的时候 返回 a的b次方        return a**b    # 调用ceshi的时候 返回 ceshi1函数。    return ceshi1# 函数ceshi输入实参数字2,并赋值给a1a1=ceshi(2)# 函数ceshi输入实参数字3,并赋值给a2a2=ceshi(3)# 调用a1时,函数ceshi形参为2 ,# 传入实参5,实参传给了b,结果是2的5次方print(a1(5))# 调用a1时,函数ceshi形参为3# 传入实参4,实参传给了b,结果是3的4次方print(a2(4))

标签: #python内嵌