返回

Python爬虫-第二章-4-函数

发布时间:2023-05-09 12:08:18 380
# python# 数据
  1. 函数嵌套执行
# 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) # 代理模式

  1. 生成器
# 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,生成器表达式简单示例----------------------
特别声明:以上内容(图片及文字)均为互联网收集或者用户上传发布,本站仅提供信息存储服务!如有侵权或有涉及法律问题请联系我们。
举报
评论区(0)
按点赞数排序
用户头像
精选文章
thumb 中国研究员首次曝光美国国安局顶级后门—“方程式组织”
thumb 俄乌线上战争,网络攻击弥漫着数字硝烟
thumb 从网络安全角度了解俄罗斯入侵乌克兰的相关事件时间线