Python基础学习 -- 生成器与装饰器

简介: Python基础学习 -- 生成器与装饰器

一、生成器

1、假如对列表操作,还没进行数据运算,a已经占了很多空间了,假如有100亿个数字需要处理,浪费的空间肯定更大

a=[1,2,3,4,5,6,7,8,9,10]

2、用到那个数据,就取那个数据,类似于迭代器,生成器是一种特殊的迭代器,他自动实现了iter和next两个方法

3、第一种生成器创建方式,和迭代器差不多,但是这一种达不到省内存的效果,因为也需要加载a这个列表

a=[1,2,3,4,5,6,7,8,9,10]
b=(x for x in a)
print(next(b))
print(next(b))

4、通过关键字yield生成,执行到yield程序并不是结束,而是等着第二次调用

生成一个数的n次方

def fun():
    for i in range(10):
        yield i**i
res=fun()
print(next(res))
print(next(res))
print(next(res))
print(next(res))
或者
for i in res:
    print(i)
运行结果:
1
1
4
27
256
3125
46656
823543
16777216
387420489

二、装饰器

1、在不修改原函数的情况下,给函数增加某些功能

2、装饰器的参数是被装饰的函数

3、原函数

def fun():
    print("我爱睡觉")

4、在不修改fun函数的情况下,增加一个学习的功能

5、给装饰器起个名字zsq,并添加一个学习的函数,实现学习功能

def zsq(f):
    def xuexi():
        f()
        print("我在学习")
    return xuexi

6、通过@添加装饰器,并调用fun函数

def zsq(f):
    def xuexi():
        f()
        print("我在学习")
    return xuexi
@zsq
def fun():
    print("我爱睡觉")
fun()
运行结果:
我爱睡觉
我在学习
目录
相关文章
|
10天前
|
Python 容器
Python学习的自我理解和想法(9)
这是我在B站跟随千锋教育学习Python的第9天,主要学习了赋值、浅拷贝和深拷贝的概念及其底层逻辑。由于开学时间紧张,内容较为简略,但希望能帮助理解这些重要概念。赋值是创建引用,浅拷贝创建新容器但元素仍引用原对象,深拷贝则创建完全独立的新对象。希望对大家有所帮助,欢迎讨论。
|
1天前
|
Python
Python学习的自我理解和想法(10)
这是我在千锋教育B站课程学习Python的第10天笔记,主要学习了函数的相关知识。内容包括函数的定义、组成、命名、参数分类(必须参数、关键字参数、默认参数、不定长参数)及调用注意事项。由于开学时间有限,记录较为简略,望谅解。通过学习,我理解了函数可以封装常用功能,简化代码并便于维护。若有不当之处,欢迎指正。
|
12天前
|
存储 索引 Python
Python学习的自我理解和想法(6)
这是我在B站千锋教育学习Python的第6天笔记,主要学习了字典的使用方法,包括字典的基本概念、访问、修改、添加、删除元素,以及获取字典信息、遍历字典和合并字典等内容。开学后时间有限,内容较为简略,敬请谅解。
|
10天前
|
缓存 数据安全/隐私保护 Python
python装饰器底层原理
Python装饰器是一个强大的工具,可以在不修改原始函数代码的情况下,动态地增加功能。理解装饰器的底层原理,包括函数是对象、闭包和高阶函数,可以帮助我们更好地使用和编写装饰器。无论是用于日志记录、权限验证还是缓存,装饰器都可以显著提高代码的可维护性和复用性。
23 5
|
12天前
|
Python
Python学习的自我理解和想法(7)
学的是b站的课程(千锋教育),跟老师写程序,不是自创的代码! 今天是学Python的第七天,学的内容是集合。开学了,时间不多,写得不多,见谅。
|
10天前
|
存储 安全 索引
Python学习的自我理解和想法(8)
这是我在B站千锋教育学习Python的第8天,主要内容是元组。元组是一种不可变的序列数据类型,用于存储一组有序的元素。本文介绍了元组的基本操作,包括创建、访问、合并、切片、遍历等,并总结了元组的主要特点,如不可变性、有序性和可作为字典的键。由于开学时间紧张,内容较为简略,望见谅。
|
2月前
|
存储 算法 API
Python学习五:函数、参数(必选、可选、可变)、变量、lambda表达式、内置函数总结、案例
这篇文章是关于Python函数、参数、变量、lambda表达式、内置函数的详细总结,包含了基础知识点和相关作业练习。
33 0
|
6月前
|
存储 Python Windows
【Python学习篇】Python实验小练习——函数(十)
【Python学习篇】Python实验小练习——函数(十)
39 1
|
6月前
|
存储 Python
【Python学习篇】Python——函数(九)
【Python学习篇】Python——函数(九)
64 1
|
5月前
|
API Python
Python学习日记(二:函数和逻辑操作)
Python中的函数和逻辑操作至关重要。函数包括可变和不可变参数。