当前位置: 首页 > news >正文

抚养网站建设上海住房和城市建设厅网站

抚养网站建设,上海住房和城市建设厅网站,苏州刚刚发生大事件,百度关键词竞价价格目录 ​编辑 前言 一.三器 1. 迭代器(Iterator) 1.1 什么是可迭代对象 1.2什么是迭代器 1.3案例演示: 以下是一个简单的迭代器示例,遍历一个列表并打印每个元素: 1.4迭代器总结 2. 生成器(Generat…

目录

​编辑

前言

一.三器

1. 迭代器(Iterator)

1.1 什么是可迭代对象

1.2什么是迭代器

1.3案例演示: 以下是一个简单的迭代器示例,遍历一个列表并打印每个元素:

1.4迭代器总结

2. 生成器(Generator)

3. 装饰器(Decorator)

二.一闭 

4. 闭包(Closure)

总结:


 

前言

Python是一种功能强大而灵活的编程语言,拥有许多强大的特性和工具,其中包括"一闭三器"——迭代器、生成器、装饰器和闭包

一.三器

1. 迭代器(Iterator)

1.1 什么是可迭代对象

只要是可以通过for...in…的形式进行遍历的,那么这个数据类型就是可以迭代的

1.2什么是迭代器

迭代是python中访问集合元素的一种非常强大的一种方式。迭代器是一个可以记住遍历位置的对象,迭代器对象从第一个元素开始访问,直到所有的元素被访问完结束。迭代器只能往前不会后退。因此不会像列表那样一次性全部生成,而是可以等到用的时候才生成,因此节省了大量的内存资源。迭代器有两个方法:iter()和next()方法

1.3案例演示: 以下是一个简单的迭代器示例,遍历一个列表并打印每个元素:

class MyIterator:def __init__(self, data):self.data = dataself.index = 0def __iter__(self):return selfdef __next__(self):if self.index >= len(self.data):raise StopIterationitem = self.data[self.index]self.index += 1return itemmy_list = [1, 2, 3, 4, 5]
my_iter = MyIterator(my_list)for item in my_iter:print(item)

1.4迭代器总结

  1. 凡是可作用于for循环的对象都是Iterable 类型;

  2. 凡是可作用于 next() 函数的对象都是Iterator 类型;

  3. 集合数据类型如list 、dict、str等是 Iterable但不是Iterator,不过可以通过 iter()函数获得一个Iterator对象

特点:

  • 允许按顺序访问集合中的元素。
  • 可以在不加载整个集合到内存中的情况下处理大型数据集。

优点:

  • 节省内存,特别适用于大型数据集。
  • 提供了一种通用的遍历机制,适用于各种不同类型的数据结构。

缺点:

  • 需要手动实现__iter__()__next__()方法,有些繁琐。
  • 一旦迭代器遍历完数据,就不能再次使用,需要重新创建。

2. 生成器(Generator)

介绍: 生成器是一种特殊类型的迭代器,它可以以更简洁的方式生成值。

案例演示: 以下是一个生成器示例,生成斐波那契数列:

def fibonacci():a, b = 0, 1while True:yield aa, b = b, a + bfib = fibonacci()
for _ in range(10):print(next(fib))

特点:

  • 使用yield关键字简化了迭代器的创建。
  • 延迟生成值,节省内存。

优点:

  • 更简洁的语法。
  • 适用于处理大量数据或需要延迟生成的情况。

缺点:

  • 不支持双向遍历,只能单向前进。
  • 无法随机访问元素。

3. 装饰器(Decorator)

介绍: 装饰器是一种用于修改函数或方法行为的技术,允许在不修改原始函数代码的情况下添加额外的功能。

案例演示: 以下是一个装饰器示例,用于测量函数执行时间:

import timedef timing_decorator(func):def wrapper(*args, **kwargs):start_time = time.time()result = func(*args, **kwargs)end_time = time.time()print(f"{func.__name__} took {end_time - start_time} seconds to run.")return resultreturn wrapper@timing_decorator
def slow_function():time.sleep(2)slow_function()

特点:

  • 可以轻松地扩展函数的功能,例如日志记录、性能分析等。
  • 可以重用装饰器,使代码更干净。

优点:

  • 提高了代码的可维护性和可读性。
  • 使功能扩展更容易。

缺点:

  • 可能会增加代码的复杂性,特别是当多个装饰器堆叠时。

二.一闭 

4. 闭包(Closure)

介绍: 闭包是一种函数,它可以访问其定义范围之外的变量,即使外部函数已经执行完毕。

案例演示: 以下是一个闭包示例,创建一个计数器函数:

def counter():count = 0def increment():nonlocal countcount += 1return countreturn incrementcounter1 = counter()
print(counter1())  # 输出1
print(counter1())  # 输出2counter2 = counter()
print(counter2())  # 输出1

特点:

  • 允许函数保留状态,使得函数可以"记住"之前的状态。
  • 有助于隐藏数据,实现封装。

优点:

  • 提供了一种轻量级的状态管理机制。
  • 使函数更加灵活和可复用。

缺点:

  • 可能会导致不正确的行为,特别是当闭包不正确地使用时。
  • 可能会增加代码的复杂性,难以理解。

总结:

 一闭三器属于进阶语法,我们需要有强大的基础才能实际开发中运用,当我们运用得当,它能成为我们很实用的工具,为我们减轻很多代码,以及提示代码的质量

http://www.yayakq.cn/news/696568/

相关文章:

  • 心理咨询网站建设做网站为什么要服务器
  • 怎样建设大型网站wordpress 社交链接
  • 南通网站排名优化价格网站设计案例公司
  • 域名备案要先做网站的吗微信h5的制作方法
  • 自个做网站教程建站教程流程图
  • 站长源码商城微网站创建
  • 网站搭建团队做网站送商标
  • o2o网站系统建设微网站和网站同步像素
  • 中国农业工程建设协会网站舆情分析网站免费
  • 网站开发中设置会员等级常宁网站制作
  • 百度收录网站入口哪家app定制开发好
  • 怎么做免费推广网站做专业网站设计多少钱
  • 台州网络建站模板芜湖seo网站优化
  • vi手册网站制作优化推广
  • 宁夏百度网站怎么做建设教育网站
  • 快速开发工具网站网络设计的内容是什么
  • 网站建设不用虚拟主机建立网站要钱吗
  • 网上服务大厅官网免费的关键词优化软件
  • 炒股配资网站开发红安建设局投诉网站
  • 站长seo微商城网站建设效果
  • 电子商务网站开发流程免费提升学历
  • 网站后期的维护建设银行信用卡网站
  • 企业网站建设所需要的资料南宁vi设计公司
  • 青岛个人接网站建设被跨境电商骗了怎么办
  • 网站如何建设二级域名代理wordpress编辑图片
  • 优化方案官方网站php免费源码网站
  • wordpress娃娃插件深圳网络营销优化
  • 大连网站建设外贸wordpress首页文章
  • 深圳app网站设计企业邮箱价格
  • 网站开发接入本地天地图vs做的网站案例