设为首页 加入收藏

TOP

python 第一类对象 闭包 迭代器(二)
2018-12-10 22:09:10 】 浏览:180
Tags:python 一类 对象 闭包
否闭包.有内容就是闭包,没有内容就不是闭包
    inner()
wrappe()
 
迭代 
 
s = "今天下午考试,你们还要睡觉吗 "
for c in s: #字符串是一个可迭代对象
    print (c)
 
for i in 123: # 'int' object is not iterable整型是不可以迭代的
    print(i)
dir(对象)  #可以帮我们查看xxx数据能够执行的操作
print(dir(str))  #__iter__  
字符串 列表 字典 元组 集合 是可以迭代的  
int 和 bool 是不可以迭代的
共性:所有带有__iter__的东西可以进行for循环,带有__iter__的东西就是可以迭代的
lst = ["贾樟柯", "李安", "杨德昌", "王家卫"]
it = lst.__iter__() #拿到的是迭代器 
print(it.__next__()) #下一个
print(it.__next__()) #下一个
print(it.__next__()) #下一个
print(it.__next__()) #下一个
print(it.__next__()) #下一个 会报错  stopinteration  停止迭代
##想回去只能重新获得迭代器
1.只能项下执行,不能反复
2.结束的时候会扔给我们一个错误  stopiteration
3.整合所有的数据类型进行遍历 (int,bool除外)
用while循环来模拟for循环
it = list.__iter__()
while 1:
        try:
            el = it.__next__:  #拿数据
            print(el)
        except stopiteration:  #出现错误说明数据拿完了 
            break  #退出循环
 
官方通过代码判断是否是迭代器
借助于两个模块  Iteration 迭代器,iterable 可迭代的
from collections import iterable,iterator
lst = [1,2,3]
print(lst.__next__())
print(isinstance(lst, Iterable)) # xxx是否是xxx类型的. True
print(isinstance(lst, Iterator)) # False
 
迭代器一定是可迭代的,可迭代的东西不一定是迭代器
isinstens(参数,iterable)  判断xxx是不是某某类型 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
首页 上一页 1 2 下一页 尾页 2/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇day 10 函数的进阶 下一篇在python中实现格式化输出的方法

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目