鱼C论坛

 找回密码
 立即注册
查看: 20786|回复: 8

29课练习疑问 为什么open得到的io.TextIOWrapper 这个数据类型可以用在for 循环

[复制链接]
发表于 2018-7-7 00:37:10 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x

比如  f1 = open(“kj.txt”)
我执行的是只读方式的打开kj.txt  这个时候f1的数据类型是_io.TextIOWrapper
for line1 in f1:

为什么这个数据类型可以用在 for循环里面 而且用了之后 感觉是用换行符分割的列表
       
       

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2018-7-7 16:17:10 | 显示全部楼层
open(name[, mode[, buffering]]), open默认为读取模式(mode),f1 = open(“kj.txt”)也就是读取kj.txt内容,。
这是可以用for lines in f1来打印出文本内容。
只要你每一行最后都按过回车键,都回有一个\n,回车符
打印的时候即print(lines) == print('xxxxxx\n')
故会打印出一个空行来。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-7-7 21:58:36 | 显示全部楼层
对于有些编程语言f1仅仅是文件句柄,而在python f1不仅是句柄,还可以看作一个生成器,即它包括了文件的所有内容,作为一个惰性对象,只有在使用时才逐行取出(用\n来分隔成一行行),同样作为生成器它只能迭代一次,如果重复for语句就没有内容了。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 0 反对 1

使用道具 举报

发表于 2018-7-8 00:07:16 | 显示全部楼层
冬雪雪冬 发表于 2018-7-7 21:58
对于有些编程语言f1仅仅是文件句柄,而在python f1不仅是句柄,还可以看作一个生成器,即它包括了文件的所 ...

如何确实一个对象是生成器对象呢
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-7-8 00:08:21 | 显示全部楼层
冬雪雪冬 发表于 2018-7-7 21:58
对于有些编程语言f1仅仅是文件句柄,而在python f1不仅是句柄,还可以看作一个生成器,即它包括了文件的所 ...

如何确定一个对象是个生成器呢?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-7-8 12:32:17 | 显示全部楼层
Miracle-s 发表于 2018-7-8 00:07
如何确实一个对象是生成器对象呢

更准确的说应该是迭代器,可以这样判断:

  1. >>> f=open('1.txt')
  2. >>> from collections import Iterator
  3. >>> isinstance(f, Iterator)
  4. True
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-7-9 21:51:46 | 显示全部楼层
冬雪雪冬 发表于 2018-7-8 12:32
更准确的说应该是迭代器,可以这样判断:

生成器和迭代器是不可以等价对待?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-7-9 23:12:59 | 显示全部楼层
Miracle-s 发表于 2018-7-9 21:51
生成器和迭代器是不可以等价对待?

在这里是指的一个意思,
参见:http://python.jobbole.com/87805/
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-7-10 21:40:49 | 显示全部楼层
冬雪雪冬 发表于 2018-7-9 23:12
在这里是指的一个意思,
参见:http://python.jobbole.com/87805/

恩恩。感谢,这个好详细
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-12-31 14:13

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表