Python Day05

1.模块

2.包

all列表细节:

包也可以作为一个模块被另一个包包含,这种时候怎么样调用最内层包的模块呢:

 

3.装饰器 

记住:被装饰的函数有参数,装饰器内部函数也要保持相同格式确保被装饰函数能够顺利接受到参数

使用装饰器来得到函数执行时间:

带有参数的装饰器:

# 定义一个带参数的装饰器函数
def logging(flag):  
    # 外部函数,接受被装饰的函数作为参数
    def decorator(fn):  
        # 内部函数,用于包装被装饰的函数
        def inner(num1, num2):  
            # 判断流程,根据传入的 flag 参数输出不同的提示信息
            if flag == "+":  
                print("--正在努力加法计算--")
            elif flag == "-":
                print("--正在努力减法计算--")
            # 调用被装饰的函数,并获取其返回结果
            result = fn(num1, num2)  
            return result
        return inner
    # 返回装饰器函数
    return decorator

# 使用带参数的装饰器装饰 add 函数
@logging('+')  
def add(a, b):
    result = a + b
    return result

# 执行被装饰后的函数
result = add(1, 3)  
print(result)

这块其实就是装饰器,外部的函数和定义用来接收带有的参数 

最后一行其实是先执行logging("+")于是根据上面定义会返回带有加号的闭包,于是就可以带有参数使用装饰器了

4._call_方法和类装饰器

# 定义类装饰器
class Check(object):
    def __init__(self, fn):  # fn = comment
        self.__fn = fn

    def __call__(self, *args, **kwargs):
        print("登陆")
        self.__fn()  # comment()


# 被装饰的函数
@Check  # comment = Check(comment)
def comment():
    print("发表评论")


comment()

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值