当前位置:   article > 正文

python —函数的说明文档、作用域以及嵌套和闭包_python 闭包

python 闭包

一,函数的说明文档

        给函数中得代码做解释说明——用三个引号包括    '''   '''

  1. def a():
  2. '''
  3. 定义一个函数 a ,设定内容 b ,同 for循环的range函数 使内容 b 循环200次
  4. :return:
  5. '''
  6. b = '你好世界'
  7. for i in range(200):
  8. print(b, f'第{i + 1}次打印')
  9. a()
'
运行

二,函数的嵌套

        函数内部调用其他函数

  1. def a():
  2. print('我是函数 a')
  3. # 在函数 a 中调用函数 b
  4. b()
  5. def b():
  6. print('我是函数 b ')
  7. # 调用函数 a
  8. a()
'
运行

三,函数的作用域——分两种
    全局变量是指:定义在代码文件或模块顶层的变量,可以被整个程序的所有函数、类和模块访问。
    局部变量是指:定义在函数内部或代码块内部的变量,只能在其所在的代码块中进行访问。

  1. # 变量 a 全局作用域
  2. a = 100
  3. # 定义一个 textA
  4. def textA():
  5. # 变量 b 局部作用域
  6. b = 20
  7. # 变量 a 在全局作用域,可以访问
  8. print(a)
  9. # 变量 b 在局部作用域,访问不到,所以报错
  10. print(b)

global——使用 global 可以在函数内部声明变量为全局变量

  1. money = 10 # 全局变量
  2. # 定义两个变量 textA,textB
  3. def texta():
  4. global money1 # global 将 局部变量 转为 全局变量
  5. money1 = 200 # 局部变量
  6. print(money)
  7. def texta():
  8. print(money1)
  9. texta()
  10. texta()

四,闭包——什么是闭包

函数中 定义一个函数,调用当前函数时会返回内部函数的值

        定义一个包含内部函数的外部函数来封装变量和逻辑块,调用当前函数时会返回内部函数值

  1. def func(): # 定义一个函数
  2. def func1(): # 嵌套一个函数,也称内部函数
  3. return "我是 func 的内部函数 func1" # return 返回函数值
  4. return func1()
  5. # 调用func时,打印func1的值
  6. print(func())
  7. F:\Python3.9\python.exe "D:\muyi\my python\练习.py"
  8. 我是 func 的内部函数 func1
  9. Process finished with exit code 0

例: 

  1. def func(x): # x 为形参
  2. def func1():
  3. return 'hello' + x # 返回 hello + x 的实参 Word 的值
  4. return func1 # 返回内部函数的值
  5. # 调用当前函数 会返回内部函数的值
  6. print(func('word')()) # word 为实参 加()就是调用 调用函数 func
  7. F:\python\python.exe "D:\muyi\my python\练习"
  8. helloword
  9. 进程已结束,退出代码0

例: 

  1. # 闭包
  2. """
  3. 定义一个函数,在函数内部在定义一个函数
  4. 当调用函数时,会返回内部函数的值
  5. 加()就是嗲用
  6. """
  7. def demo(a): # 定义一个函数 a 为形参
  8. def func(): # 定义一个内部函数
  9. return '你好!'+ a # 内部函数的返回值,也是闭包的返回值
  10. return func() # 调用函数,返回内部函数值
  11. # 调用函数 并赋予实参给形参 a
  12. print(demo('木易'))
  13. print(demo('我是木易'))
  14. F:\Python3.9\python.exe "D:\muyi\my python\练习.py"
  15. 你好!木易
  16. 你好!我是木易
  17. Process finished with exit code 0

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小桥流水78/article/detail/855892?site
推荐阅读
相关标签
  

闽ICP备14008679号