#可迭代物件:就是使用for迴圈遍歷取值的物件就是可迭代物件
# for迴圈可以直接遍歷:列表、元組、字串、集合、range
from collections import iterable
#判斷物件是否是指定型別
result = isinstance('str', int)
print(result)
#元組result = isinstance('(1,2)', iterable)
print(result)
# 可迭代物件都有方法: __iter__
result = dir([1,2])
print(result)
# 迭代器
#在類裡面有方法 __iter__ 和 __next__,建立的物件就是迭代器
from collections import iterable
class myiterable(object):
def __init__(self):
self.mylist = [4,5,9]
self.current_index = 0
def __iter__(self):
# 返回乙個迭代物件
return self
def __next__(self):
if self.current_index < len(self.mylist):
#獲取迭代器的下乙個值
result = self.mylist[self.current_index]
self.current_index +=1
return result
else:
# 停止迭代,丟擲異常
raise stopiteration
# 建立迭代器
my_iterable = myiterable()
result = isinstance(my_iterable, iterable)
print(result)
#下面兩段**,只輸出一遍結果
mm = next(my_iterable)
print(mm)
mm = next(my_iterable)
print(mm)
mm = next(my_iterable)
print(mm)
mm = next(my_iterable) #越界,丟擲異常
print(mm)
for value in my_iterable:
# for 迴圈裡面直接停止迭代,系統內部幫助我們處理好了
print(value)
'''生成器
乙個特殊的迭代器,同樣可以通過next和for迴圈取值
值只能向後取,不能向前取
'''# 列表生成式
result = [x for x in range(4)]
print(result, type(result))
#生成器
result = (x for x in range(4))
print(result, type(result))
# 下面兩段**只執行乙個
value = next(result)
print(value)
value = next(result)
print(value)
value = next(result)
print(value)
for value in result:
print(value)
#使用yield建立生成器
def show_num():
for i in range(5):
yield i
#**遇到yield會暫停,然後把結果返回過去
#下次啟動時,生成器會在暫停的位置
#yield特點:可以返回多次值,return只能返回乙個值
g = show_num()
print(g)
value = next(g)
print(value)
value = next(g)
print(value)
value = next(g)
print(value)
for value in g:
print(value)
python 12 物件導向基礎語法
dir 內建函式 定義簡單的類 只包含方法 方法中的self 引數 初始化方法 內建方法和屬性 在ipython中物件幾乎是無所不在的,我們之前學習的變數 資料 函式都是物件 在python中可以使用以下兩個方法驗證 1.在識別符號 資料後輸入乙個.然後按下tab鍵,ipython 會提示該物件能夠...
Python 可迭代物件
1.可迭代物件 以直接作用於for迴圈的資料型別有以下幾種 一類是集合資料型別 如 list tuple dict set str等 一類是generator,包括生成器和帶yield 的 generator function 這些可以直接作用於for迴圈的物件統稱為可迭代物件 iterable 2...
python可迭代物件
0 在python中只要是能用for in的,都是可迭代物件,讓我們看下定義 定義 我們已經知道可以對list tuple dict set str等型別的資料使用for in 的迴圈語法,會從其中依次拿到資料元素進行使用,我們把這樣的過程稱為遍歷,也叫迭代。所以我們把可以通過for in 這類語句...