#裝飾器# import time
# def show_time(func):
# def inner(*x):
# start_time = time.time()
# func(*x)
# end_time = time.time()
# print(end_time-start_time)
# return inner
# @show_time
# def add(*x):
# sum = 0
# for i in x:
# sum+=i
# time.sleep(1)
# print(sum)
# add(7, 8, 9)
#列表生成
# t = ('123', 8, [1, 2, 3])
# d =
# def f(n):
# n = n**3
# return n
# list_builder = [x for x in range(10)]#[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
# list_builder2 = [x*2 for x in range(10)]#[0, 2, 4, 6, 8, 10, 12, 14, 16, 18]
# list_builder3 = [f(x) for x in range(10)]#[0, 1, 8, 27, 64, 125, 216, 343, 512, 729]
# list_builder4 = [x for x in t]#['123', 8, [1, 2, 3]]
# list_builder5 = [x for x in d]#['age', 'leo']
# print(list_builder)
# print(list_builder2)
# print(list_builder3)
# print(list_builder4)
# print(list_builder5)
#生成器
#a = (x for x in range(5))
#print(a)#at 0x0120bb10>
# print(next(a)) #等價於a.__next__()
# #print(a.__next__())
# print(next(a))
# print(next(a))
# for i in a:
# if i ==2:
# print(i)
# continue
# def fibo(max):# n, before, after = 0, 0, 1
# while n < max:
# #print(before)
# yield before
# before, after = after, before+after
# n = n+1
## g = fibo(10)
# print(g)#
# print(next(g))
# def bar():
# print('ok')
# cout = yield 1
# print(cout)
# #print('ok2')
# yield 2
# g =bar()
#next(g)
# g.send(none)
# g.send('eeee')
#迭代器iterator#生成器都是迭代器,迭代器不一定是生成器
#什麼是迭代器:有兩個方法:1.有iter()方法,2.有next()方法
l = [1, 2
, 3, 4
, 5]
d = iter(l)
#print(d) #
#print(len(d))#typeerror: object of type 'list_iterator' has no len()
#for迴圈迭代出迭代器中的值
for i in
range(len(l)):
print(next(d))
from collections import iterator,iterable
print(isinstance(l,
list))#true,判斷是否為list型別
print(isinstance(l,iterable))#true,判斷是否為可迭代物件
print(isinstance(l,iterator))#false,判斷是否為迭代器
print(isinstance(d,iterator))#true,判斷是否為迭代器
迭代器 生成器 裝飾器
1.迭代器 1 定義 同時滿足 iter 方法和next 方法的物件就是迭代器。3 型別 可迭代物件通過iter 轉為迭代器 生成器是一種特殊的迭代器。2.生成器 1 定義 生成器是迭代器的一種,包括含有yield關鍵字函式和生成器表示式。2 用法 所有函式呼叫的引數都是第一次呼叫時保留的,而不是新...
生成器 迭代器 裝飾器
迭代器表面上看是乙個資料流物件或者容器,當使用其中的資料時,每次從資料流中取出乙個資料,直到資料被取完,而且資料不會被重複使用。從 的角度來看,迭代器是實現了迭代器協議方法的物件和類。迭代器協議方法主要是兩個 iter 該方法返回物件本身,它是for語句使用迭代器的要求 next 方法用於返回容器中...
生成器 裝飾器 迭代器
列表生成器 def f n return n 3 a f x for x in range 100 print a print type a 生成器 生成器一共兩種建立方式 1.x for i in range 0 2.yield 生成器在建立的時候已經決定了能計算出值的個數,呼叫next的次數超過...