Python爬虫-第二章-4-函数
网络安全监督员 lv.2
发布时间:2023-05-09 12:08:18 406相关标签: # python# 数据
- 函数嵌套执行
# Demo Describe:函数嵌套执行
'''
函数可以作为参数也可作为返回值
本质:函数名是一个变量名,都指向一个内存地址
'''
# ---------1.观察函数嵌套执行顺序-------------------
def fun1():
print(123)
def fun2():
print(456)
def fun3():
print(789)
def fun4():
print(101112)
print(131415)
fun4()
print(161718)
fun3()
print(192021)
fun2()
print(222324)
# fun1()
'''
fun1() 执行结果
123
192021
456
161718
789
131415
101112
222324
'''
# ---------2.局部函数的调用-------------------
def funTest1():
print(123) # 外部执行
def funTest2():
print('局部函数内部处理') # 内部执行
print(funTest2) #.funTest2 at 0x0000016D0A0AAF80> 内存地址查看
return funTest2
# re = funTest1() #面向对象
# print(re) #.funTest2 at 0x0000016D0A0AAF80> 内存地址与调用中的内部函数一致
# re() #局部函数内部处理执行
# ---------3.代理模式-------------------
def funTest4():
print('代理模式')
def funTest3(fun): # 函数作为参数
fun() # 执行
funTest3(funTest4) # 代理模式
- 生成器
# Demo Describe:生成器
'''
生成器(generator):
本质上是一个迭代器
创建生成器的两种方式:
1.生成器函数
2.生成器表达式
(data for if)
生成器函数:
1.常用关键字yield
作用:
1.返回在生成器函数中定义的数据
2.分段执行函数中的内容
2.生成器函数执行时不会执行函数,只会返回生成器
优点:
节省内存开销,提高程序性能
'''
# start--------1,生成器函数简单示例----------------------
def fun():
print(123)
yield 456
# ret = fun()
# print(ret.__next__())
# end--------1,简单示例----------------------
# start--------2,生成器函数使用场景----------------------
'''
每次从大量数据中依次取出部分
'''
def order():
lst = []
for item in range(1, 100000):
lst.append(f'存入第{item}位数据')
if len(lst) == 50:
yield lst
lst = []
ret = order()
print(ret.__next__()) # 1-50
print(ret.__next__()) # 51-100
print(ret.__next__()) # 101-150
# end--------2,使用场景----------------------
# start--------3,生成器表达式简单示例----------------------
gen = (i ** 2 for i in range(10))
print(gen) #at 0x0000026BE4AD1A10> 只是迭代器
print(list(gen)) # [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
# end--------3,生成器表达式简单示例----------------------
文章来源: https://blog.51cto.com/mooreyxia/5973758
特别声明:以上内容(图片及文字)均为互联网收集或者用户上传发布,本站仅提供信息存储服务!如有侵权或有涉及法律问题请联系我们。
举报