首页 > 编程语言 >学习python第六天

学习python第六天

时间:2022-11-04 21:58:01浏览次数:37  
标签:__ 迭代 python self iter next 学习 第六天 模块

python迭代器

  迭代器是一种对象 包含值的可计数数字

  在py中,迭代器是实现迭代器协议的对象,它包含方法_iter_() 和 _next_()

  

要把对象/类创建为迭代器,必须为对象实现 __iter__() 和 __next__() 方法。

正如您在 Python 类/对象 一章中学到的,所有类都有名为 __init__() 的函数,它允许您在创建对象时进行一些初始化。

__iter__() 方法的作用相似,您可以执行操作(初始化等),但必须始终返回迭代器对象本身。

__next__() 方法也允许您执行操作,并且必须返回序列中的下一个项目。

  

class MyNumbers:
  def __iter__(self):                    执行初始化,返回迭代器对象本身
    self.a = 1
    return self

  def __next__(self):
    x = self.a                                返回序列中的下一个项目
    self.a += 1
    return x

myclass = MyNumbers()
myiter = iter(myclass)
    

如果你有足够的 next() 语句,或者在 for 循环中使用,则上面的例子将永远进行下去。

为了防止迭代永远进行,我们可以使用 StopIteration 语句。

在 __next__() 方法中,如果迭代完成指定的次数,我们可以添加一个终止条件来引发错误:

class MyNumbers:
  def __iter__(self):
    self.a = 1
    return self

  def __next__(self):
    if self.a <= 20:
      x = self.a
      self.a += 1
      return x
    else:
      raise StopIteration

myclass = MyNumbers()
myiter = iter(myclass)

for x in myiter:
  print(x)
变量仅在创建区域内可用。这称为作用域。
模块是包含一组函数的文件,希望在应用程序中引用。
当需要使用模块中的函数时,请使用 moudle_name.function_name

重命名模块

您可以在导入模块时使用 as 关键字创建别名:

import module as mx:

dir() 函数可用于所有模块,也可用于您自己创建的模块

您可以使用 from 关键字选择仅从模块导入部件。

 

from mymodule import person1

print (person1["age"])

 

 

标签:__,迭代,python,self,iter,next,学习,第六天,模块
From: https://www.cnblogs.com/xirufeng/p/16859216.html

相关文章

  • SpringCloud学习笔记
    一、服务注册中心Eurekaeureka-client服务发现:从注册中心上获取服务信息服务注册:将服务信息注册进注册中心依赖引入<!--EurekaClient端依赖-->......
  • 数据分析--学习笔记01
    python数据分析python数据分析工具包Numpy,SciPy.org,matplotlib,lean,pandas,k学习方法:重视理论--》勤于查阅--》身体力行--》联系实际数据获取手段数据仓库将所......
  • 课程学习进度
    我的课程个人中心里面展示我的课程界面效果src/components/user/Course.vue,代码:<template><divclass="right-containerl"><divclass="right-title">......
  • 学习笔记——base标签、加密方式、JDBC、将java中添加的数据增加到数据库中
    2022-11-03一、base标签1、作用:用于添加web项目的前缀。2、放置位置:放置在head标签内部,一般放在首行。3、使用方式:<basehref="/项目名称/">,在html网页中的其他(例如:图......
  • C语言学习
    文件系统:1.inode本质是结构体,存储文件属性信息:1.权限2.类型3.大小4.时......
  • python之路之 面向对象动静态方法、继承、派生
    昨日内容回顾人狗大战1.直接使用字典表示人和狗 p1={} p2={} p3={} p4={}2.封装产生人和狗的函数 defcrreate_person():passdefcreate_dog():p......
  • 【单片机/嵌入式】【梁山派】学习日志05:库函数点灯
    库函数点灯一、配置流程(1)开启GPIO的端口时钟(2)配置GPIO的模式(3)配置GPIO的输出对LED2接的PD7进行配置。在使用库函数之前,我们需要了解到,GD32官方帮我们做好了这一套库......
  • C++ ofstream学习
    转自:https://blog.csdn.net/kingstar158/article/details/68593791.介绍#include<fstream>ofstream//文件写操作内存写入存储设备ifstream//文......
  • python操作mysql数据库
    一、python连接MySQL####1.基本语法#(1)创建连接hostuserpassworddatabase这四个参数必须写conn=pymysql.connect(host="127.0.0.1",user="root",passw......
  • Vue 2.x源码学习:应用初始化大致流程
    我们使用vue-cli搭建vue2.x项目时,大致由如下代码来做一个vue应用的初始化:importVuefrom"vue";importAppfrom"./App.vue";Vue.config.productionTip=false;n......