Python基础之函数嵌套知识总结

内部/内嵌函数

1、定义:在一个函数的函数体内使用关键字def关键字定义一个新的函数,这个新的函数就叫做内部/内嵌函数。
2、注意点:内部函数的整个函数体都在外部函数的作用域内,如果在内部函数内没有对外部函数变量的引用,即访问,那么除了在外部函数体内,在其他任何地方都不能对内部函数进行调用。
3、内部函数可以访问外部函数的变量,但是不能对外部函数中的变量进行使用,即不能试图改变外部函数中的变量。但可以使用nonlocal关键字修饰内部函数的变量,修饰后内部函数就可以访问并使用外部函数的变量。🌰1

def out_func(out_name):
    def in_func(in_name):
        print(out_name.title() + " " + in_name.title())  # 内部函数可以访问外部函数的变量,但不能使用不能改变
    print("this is user()")
    return in_func # 返回的是内部函数对象,也就是内部函数地址。

a = out_func("tom")
print(a)
print(type(a))

输出结果:

通过输出内容我们可以看到,调用out_func函数后,返回的内容是一个函数地址,类型是一个函数

def out_func(out_name):
    def in_func(in_name):
        print(out_name.title() + " " + in_name.title())  # 内部函数可以访问外部函数的变量,但不能使用不能改变
    print("this is user()")
    return in_func # 返回的是内部函数对象,也就是内部函数地址。

a = out_func("tom") # 返回的是in_func这个函数对象
a("jerry") # 相当于in_func("jerry")

out_func("tom")("jerry")

输出结果:

a = out_func("tom")语句是调用外部函数,执行后变量a就相当于in_funca("jerry")语句相当于in_func("jerry")

out_func("tom")("jerry") 语句和a = out_func("tom")a("jerry")结果是一样的。

def out_func(out_name):
    def in_func(in_name):
        print(out_name.title() + " " + in_name.title())  # 内部函数可以访问外部函数的变量,但不能使用不能改变
    print("this is user()")
    return in_func # 返回的是内部函数对象,也就是内部函数地址。

in_func("test")  # 局部变量 不能在外部函数外部使用

输出结果:

内部函数也算是外部函数的一个局部变量,所以在外部函数外部,它也是没有作用域的。

Tip:

title():将调用其的字符串首字母大写

到此这篇关于Python基础之函数嵌套知识总结的文章就介绍到这了,更多相关Python函数嵌套内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Python通过递归函数输出嵌套列表元素

    1.先用 for 循环取 for item in l: if isinstance(item ,list): for newitem in item: print(newitem) else: print(item 输出: 1 2 3 4 5 6 #利用 for 循环取值,有几层嵌套就要写几层 for 循环,否则不识别. l=[1,2,[3,4],[5,6,[7,8]]] for item in l: if isinstance(item ,list): for newitem in item:

  • python中嵌套函数的实操步骤

    在python中如何嵌套函数? 首先打开python编辑器并且写上注释的内容. 然后定义一个函数addstr 在addstr函数里面写上内容,内容是写入文件内容. 新建第二个函数diaoyong 在函数里面嵌套刚才创建的addstr函数. 最后在函数外面调用函数. 最后运行这个程序.

  • Python函数基础实例详解【函数嵌套,命名空间,函数对象,闭包函数等】

    本文实例讲述了Python函数基础用法.分享给大家供大家参考,具体如下: 一.什么是命名关键字参数? 格式: 在*后面参数都是命名关键字参数. 特点: 1.约束函数的调用者必须按照Kye=value的形式传值. 2.约束函数的调用者必须用我们指定的Key名. def auth(*args,name,pwd): print(name,pwd) auth(pwd='213',name='egon') def register(name,age): print(type(name),type(age)

  • python嵌套函数使用外部函数变量的方法(Python2和Python3)

    python嵌套函数使用外部函数变量的方法,Python2和Python3均可使用 python3 def b(): b = 1 def bchange(): nonlocal b b += 1 bchange() print(b) Python 2 只能这样(利用 mutable 对象): def b(): b = [1] def bchange(): b[0] += 1 bchange() print b[0]

  • Python的函数嵌套的使用方法

    例子: 复制代码 代码如下: def re_escape(fn):    def arg_escaped(this, *args):        t = [isinstance(a, VerEx) and a.s or re.escape(str(a)) for a in args]        return fn(this, *t)    return arg_escaped 函数嵌套python允许在定义函数的时候,其函数体内又包含另外一个函数的完整定义,这就是我们通常所说的嵌套定义.为

  • 实例详解python函数的对象、函数嵌套、名称空间和作用域

    函数的对象 python中一切皆对象 函数对象的四大功能 引用 def f1(): print('from f1') f1() #调用函数 print(f1) print('*'*50) f = f1 # 将函数名f1赋值给f f() # f也可以调用函数 print(f) from f1 <function f1 at 0x000001FB05534620> ************************************************** from f1 <func

  • python 函数嵌套及多函数共同运行知识点讲解

    1.先讲函数嵌套,很简单的例子,如: print(len('我和你')) 这样就很好理解了. 2.关于多个函数共同运行,最重要的区分点就是,变量的作用域,有局部变量和全局变量,局部作用于不能使用其他局部作用域内的变量 def 1(): i=1 //这里的i就只是在1函数作用域 return 0 a = i //这里的会被判定为未定义 3.那么如何修改一个变量的作用域呢?用 global,可将局部变量声明为全局变量. 知识点扩展: 与嵌套函数紧密相关的就是闭包特性,举一个简单的例子: >>>

  • Python动态参数/命名空间/函数嵌套/global和nonlocal

    1. 函数的动态参数 1.1 *args 位置参数动态传参 def chi(*food): print("我要吃", food) chi("大米饭", "小米饭") 结果:我要吃 ('大米饭', '小米饭') # 多个参数传递进去. 收到的内容是元组tuple 1.2 **kwargs 关键字参数动态传参 def func(**kwargs): print(kwargs) func(a=1, b=2, c=3) func(a=1, b=2) 结果

  • Python嵌套函数,作用域与偏函数用法实例分析

    本文实例讲述了Python嵌套函数,作用域与偏函数用法.分享给大家供大家参考,具体如下: 内嵌函数(嵌套函数): 意思:在函数里面再定义一个新的函数 如果在函数体内不调用内嵌的函数,那么无法在外部调用 def my_pr1(): print("第一层打印") def my_pr2(): print("第二层打印") my_pr2()#如果在函数体内不调用内嵌的函数,那么无法在外部调用 my_pr1() 作用域: local(局部作用域)  -->enclosi

  • python编程嵌套函数实例代码

    python,函数嵌套,到底是个什么东东? 很少有人用,但是,有时确实会用: def multiplier(factor): def multiplyByFactor(number): return number*factor return multiplyByFactor python程序,一个函数在另外一个函数的里面,外层的函数返回的是里层函数.也就是函数本身被返回了,返回的是函数(听起来和C语言的一些东东相似). 注意,返回的函数还可以访问它的定义所在的作用域,也就是它带着它的环境信息奥.

  • Python 函数用法简单示例【定义、参数、返回值、函数嵌套】

    本文实例讲述了Python 函数用法.分享给大家供大家参考,具体如下: demo.py(函数定义): # say_hello() # 不能在定义函数之前调用函数 # Python 解释器知道下方定义了一个函数 def say_hello(): """函数的说明文档""" print("hello 1") print("hello 2") print("hello 3") print(&q

  • Python函数嵌套实例

    在Python中函数可以作为参数进行传递,而也可以赋值给其他变量(类似Javascript,或者C/C++中的函数指针): 类似Javascript,Python支持函数嵌套,Javascript嵌套函数的应用模式对Python适用: 复制代码 代码如下: >>> def multiplier(factor): ... def multiple(number): ... return number * factor ... return multiple ... >>>

随机推荐