函数的高级应用技巧

一、函数说明文档

  1. 什么是函数说明文档?
  • 给函数的代码做解释说明。
  • 让别人知道程序的作用。

示例:def user():

		    ```
		    内容
		    ```
def a(): #三个‘’号,可以用来对函数的内容进行说明,相当于函数的说明书
   '''
   这是飞机:'sxiaoaklfjkl'
   '''
a()#光标放在调用函数的位置可以看到说明文档

二、函数的嵌套

示例1:

          def a():#外部函数
	    	    print('hello’)
		      def b():#内部函数
		          print('word')

示例2:

              def a():
	    	    print('hello’)
	    	       b()#在a函数里调用了另一个函数b
		     def b():
		          print('word')
		      a()#调用函数a,可以得到两个值
def  b():
    print('你好')
    def c():
        print('haoareyou')

def  b():
    print('你好')
    c()#在函数内部调用另一个函数
def c():
    print('haoareyou')
b()#调用函数b

三、函数的作用域

  1. 全局作用域:指的是在模块中定义的变量和函数,可以在模块的任何位置被访问和使用。其中的变量叫全局变量。
  2. 局部作用域:指的是在函数内部定义的变量和函数,只能在该函数内部被访问。其中的变量叫局部变量。
a=100#在全局作用域中的变量
def b():
   c=10#在局部作用域的变量
print(a)#在全局作用域中,可以访问
print(c)#在局部作用域,不可以在全局作用域中访问

3.global关键字:可以在函数内部声明变量为全局变量

ab=19
def d():
    cd=78
    global ab #将局部变量ab改为全局变量,这样就可以通过局部改变全局的变量
    ab=200#将全局变量改为200
    print(ab)#全局变量可以在函数内部访问
def f():
    print(ab)
f()#先调用函数f得到19
d()#后调用的已经将全局变量修改为200,所以得到200

四、闭包

1. 什么叫闭包?

内部函数使用了外部函数的变量

def item():
    ef=78
    def user():
      print(ef)

2.闭包的作用

  • 保证数据不会被外部污染
def user():
    c=0
    def a():
        print(c)
        #c=c+1  #内部函数不能直接修改闭包的数据,可以通过声明修改
  • 保持变量状态
def b():
    e=2
    def c():
        nonlocal e#声明:指向外部函数变量e,此时可以在内部函数改变闭包e的值
        e+=1
        return e #将e的值返回给函数c
    return c#将函数c的值返回给函数b

五、装饰器

1.什么叫装饰器?

装饰器(decorator)是 Python 中一个非常强大且常用的功能,它允许你在不修改函数本身代码的情况下,为函数或方法添加额外的功能

2.怎么用?

  1. 写个闭包
  2. 创建一个函数
  3. 调用这个函数
  4. 用装饰器获取功能(@闭包名)
  5. 传参
  6. 在内部函数里调用全局作用域里的函数
#1.写一个闭包
def func1(x):#5.传参
    def func2():
        print('功能:金箍棒')
        x()#6.调用func3,闭包
    return func2#返回func2的值给函数func1
#2.创建一个函数
#4.用装饰器获取功能
@func1#将函数func3作为一个实参给func1里的形参x
def func3():
    print('我是大神')
#3.调用函数
func3()

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值