鱼C论坛

 找回密码
 立即注册
查看: 1828|回复: 0

[技术交流] 020讲总结

[复制链接]
发表于 2017-7-30 12:20:29 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
全局变量关键字 global
即若欲在函数中定义全局变量,用global 后加变量名。如:
>>> def MyFun():
        count = 10
        print(10)       
>>> MyFun()
10
>>> print(count)
5

>>> def MyFun():
        global count
        count = 10
        print(10)
>>> MyFun()
10
>>> print(count)
10

内嵌函数和闭包
内嵌函数 在函数中定义函数[ 函数嵌套 ],Python支持函数嵌套,即在一个函数的定义中调用另一个函数。如:
>>> def fun1():
        print('fun1()正在被调用...')
        def fun2():
                print('fun2()正在被调用...')
        fun2()
>>> fun1()
fun1()正在被调用...
fun2()正在被调用...

但是在外部函数的作用域外不可单独调用内部函数。如:
>>> fun2()
Traceback (most recent call last):
  File "<pyshell#32>", line 1, in <module>
    fun2()
NameError: name 'fun2' is not defined

闭包 闭包是函数式编程的重要语法结构
如果在一个内部函数里对外部作用域(但不是在全局作用域)的变量进行引用,则此内部函数就被认为是闭包。如:
>>> def FunX(x):
        def FunY(y):
                return x * y
        return FunY
>>> i = FunX(8)
>>> i
<function FunX.<locals>.FunY at 0x0000000002E208C8>
>>> type(i)
<class 'function'>#这里相当于二元函数中的一个被赋了一个值,结果还是一个值
>>> i(5)
40
>>> FunX(8)(5)
40

但是对于一个内部函数而言,此内部函数体中不可对外部函数中定义的参数进行修改操作,否则无论对内部函数还是对外部函数的调用均会报错。如:
>>> def Fun1():
        x = 5
        def Fun2():
                x *= x
                return x
        return Fun2()
>>> Fun1()

评分

参与人数 1鱼币 +2 收起 理由
小甲鱼 + 2

查看全部评分

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-24 14:47

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表