2020_10_14_装饰器、生成器和模块

本文详细介绍了Python中的装饰器、生成器和模块的概念及使用。在装饰器部分,讲解了有参和无参装饰器的实现,通过实例展示了如何创建和使用装饰器。在生成器部分,解释了迭代器的特点和创建方式,并通过示例展示了生成器的创建和数据产生原理。最后,探讨了Python模块的导入机制和使用技巧,包括导入模块的多种方式以及如何阻止模块在导入时执行某些代码。
摘要由CSDN通过智能技术生成

有参装饰器

1.有参装饰器的功能
在给函数添加功能的时候可以通过参数控制具体的操作(操作不固定)
2.怎么写有参装饰器
def 函数名0(装饰器的参数列表)
def 函数名1(func):
def 函数名2(*args, **kwargs):
result = func(*arges, **kwargs)
新功能
return result
return 函数名2
return 函数名1

def 函数名(装饰器的参数列表)
无参装饰器
return 无参装饰器的函数名

有参装饰器的用法:
@函数名0(装饰器实参列表)

写一个装饰器可以在函数结束后打印指定的任意提示信息
def add_message(msg):
def test1(func):
def new_func(*args, **kwargs):
result = func(*args, **kwargs)
print(msg)
return result
return new_func
return test1

@add_message(‘after’)
def func1(x, y):
print(x+y)

func1(10, 20)

练习:写一个装饰器,在原函数返回值的基础上减去指定的值
@sub(10) @sub(30)
def sub(num):
def test(func):
def new_func(*args, **kwargs):
result = func(*args, **kwargs)
if type(result) in (int, float, complex):
return result - num
return result
return new_func
return test

迭代器(iter)

1.迭代器是容器型数据类型(序列)
特点:a.不能同时查看所有元素(打印看不到里面的元素)
b.不能统计个数
c.获取元素的时候只能一个一个的取(每次取最上层的那个),每次获取元素该元素就会从迭代器中消失(取一个就少一个)

2.创建迭代器
迭代器的创建有两种方式
1)通过iter将其他序列转换成迭代器
2)创建生成器
iter1 = iter([10, 20, 30, 40])

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值