Python基础学习——函数相关(二),闭包,装饰器,文档字符串

一.闭包(closure)

1.定义:将内嵌函数的语句和这些语句的执行环境打包之后得到的函数对象成为闭包。

2.条件:

1.必须有一个内嵌函数
2.内嵌函数必须引用外部函数中的变量
3.外部函数返回值必须是内嵌函数
示例:

def my_sum(y):
    def fx(x):     #内嵌函数
        return x+y #y是外部函数中的变量
    return fx      #函数返回值是内嵌函数
a=my_sum(1)
print('1+2=',a(2))
#原本y在调用一次后应该会销毁,但是由于内嵌函数包含了这个变量,所以它没有销毁,必须跟着内嵌函数

二.装饰器(decorators)

1.定义:包装另一个函数或类的函数,目的是在不改变原函数名的情况下改变被包装对象的行为

下面列举函数装饰器的例子:

def my_decorate(fx):
    def fn():
        print('I love you')
    return fn
def love():
    print('I love you too')
love=my_decorate(love)
love()#得到结果是I love you

具体语法格式是:

def my_decorate(fx):
    def fn():
        print('I love you')
    return fn
@my_decorate
def love():
    print('I love you ,too')
love()#得到结果是I love you

使用多个装饰器:

def my_decorate(fx):
    def fn():
        print('I love you')
        fx()
    return fn
def decorate(fx):
    def fn():
        print("Do you love me?")
        fx()
    return fn
@decorate
@my_decorate
def love():
    print('I love you ,too')
love()#得到结果是
#Do you love me?
#I love you
#I love you ,too

三.函数的文档字符串

1.作用:通常用来描述函数的作用

2.函数的_doc_属性:函数第一次未赋值给任何变量的字符串是此函数的文档字符串,此字符串会自动赋值给函数的__doc__属性(注意是两个下划线连在一起)

示例:

def love():
    '表达我爱你'
    print('I love you too')
print(help(love))
print(love.__doc__)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值