1.迭代器和生成器

2.模块和包

1.迭代器

    迭代器对象要求支持迭代器协议的对象,在Python中,支持迭代器协议就是实现对象的__iter__()和__next__()方法。
   其中__iter__()方法返回迭代器对象本身;__next__()方法返回容器的下一个元素,在结尾时引发StopIteration异常。
2.生成器generator
    在Python中,使用生成器可以很方便的支持迭代器协议。
生成器通过生成器函数产生,生成器函数可以通过常规的def语句来定义,但是不用return返回,而是用yield一次返回一个结果,在每个结果之间挂起和继续它们的状态,来自动实现迭代协议。
   
   也就是说,yield是一个语法糖,内部实现支持了迭代器协议,同时yield内部是一个状态机,维护着挂起和继续的状态。
   生成器函数返回生成器的迭代器。 “生成器的迭代器”这个术语通常被称作”生成器”。
   要注意的是生成器就是一类特殊的迭代器。作为一个迭代器,生成器必须要定义一些方法,
   其中一个就是__next__()。如同迭代器一样,我们可以使用__next__()函数来获取下一个值。
   
   在一个 generator function 中,如果没有 return,则默认执行至函数完毕,如果在执行过程中 return,
   则直接抛出 StopIteration 终止迭代。  

2.模块和包

1.内置模块
本身就带有的库,就叫做Python的内置的库。(模块==库)
一些常见的内置模块
os 和操作系统相关 os.path
sys 和系统相关  sys.path  
sys.path.append(r'')    可以添加路径
   
2.第三方模块
非Python本身自带的库,就是所谓的第三方的库
       
3.模块的导入
import xxx [as  yy]
from ../xx  import  xx [as  yy]  
       
4.自定义模块
py文件,可以做为一个模块来用,直接作为一个模块导入就行
__main__ 的意义:
当文件是直接运行是,文件的__name__是__main__ ,当文件是被导入时,__name__是文件名

5.包管理
基本上就是另外一类模块。把用来处理一类事物的多个文件放在同一文件夹下组成的模块集。
要让python 将其作为包对待,在python2中必须包含__init__.py的文件,但在python3中没有__init__.py文件也可以,使用包可以避免多个文件重名的情况,不同的包下的文件同名不影响。
       
导入包和模块是一样的方法,包导入后会在目录中自动生成__pycache__文件夹存放生成的.pyc文件,要注意的是import后面的才是存在当前作用域中的对象名,from是告诉python从什么地方导入,
使用sys.path添加文件的目录路径。

最新文章

  1. 优化Google字体 全面加速WordPress
  2. maven 项目无法发布,无法编译的解决办法
  3. 可变参数宏__VA_ARGS__
  4. Javac不是内部或外部指令
  5. Locking
  6. oracle批量导出AWR报告
  7. 【XMLRPC实现跨语言编程】Tcl <----> python
  8. CreateMutex() 、ReleaseMutex()
  9. C# 关闭窗体立即停止进程
  10. Android6.0 源码修改之 仿IOS添加全屏可拖拽浮窗返回按钮
  11. angularJs - cynthia娆墨旧染-响应式文章发布系统
  12. 将 ASP.NET Core 2.0 项目升级至 ASP.NET Core 2.1.3X
  13. SQOOP安装部署
  14. Dell BOSS 卡是什么
  15. bzoj千题计划299:bzoj1856: [Scoi2010]字符串
  16. 使用SBT构建Scala应用【转载】
  17. javaScript 内置对象-Array数组
  18. pyqt 不规则形状窗口显示
  19. 【转】Java并发编程:线程池的使用
  20. Java按键事件KeyEvent

热门文章

  1. SSH简单搭建
  2. Python操作远程机器
  3. WPA密码攻击宝典
  4. isinstance判断某个对象是否是某个类创建的
  5. 托盘在XP下不能显示tooltip,在Vista和Windows7下正常
  6. php学习笔记-for循环
  7. JavaPersistenceWithHibernate第二版笔记-第六章-Mapping inheritance-005Table per subclass with joins(@Inheritance(strategy = InheritanceType.JOINED)、@PrimaryKeyJoinColumn、)
  8. Fast Scatter-Gather I/O
  9. [译]Javascript中的递归函数
  10. Windows系统编程之进程同步试验