标签:
参考文献:http://www.cnblogs.com/alex3714/articles/5143440.html
迭代器: 迭代器是访问集合元素的一种方式。迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束。迭代器只能往前不会后退,不过这也没什么,因为人们很少在迭代途中往后退。另外,迭代器的一大优点是不要求事先准备好整个迭代过程中所有的元素。迭代器仅仅在迭代到某个元素时才计算该元素,而在这之前或之后,元素可以不存在或者被销毁。这个特点使得它特别适合用于遍历一些巨大的或是无限的集合,比如几个G的文件。
>>> a = iter([1,2,3,4,5,]) >>> a <list_iterator object at 0x0000013D1A8082E8> >>> a.__next__() 1 >>> a.__next__() 2 >>> a.__next__() 3
#!/usr/bin/env python # -*- coding:utf-8 -*- def cash_money(amount): while amount>0: amount -= 100 yield 100 print(‘你来啦!‘) a = cash_money(500) print(type(a)) print(a.__next__()) print(a.__next__()) print(a.__next__()) print(a.__next__()) print(a.__next__())
执行结果:
<class ‘generator‘>
100
你来啦!
100
你来啦!
100
你来啦!
100
你来啦!
100
def login(func): def inner(arg): print("passed user verification...") func(arg) return inner def home(name): print("welcome %s to home page"%name) @login #装饰器放在需要装饰的函数上面以@函数名的形式存在,程序执行是会优先执行login函数,并把被装饰的函数的函数名作为参数 def tv(name): print("welcome %s to TV page"%name) def movie(name): print("welcome %s to movie page"%name) tv("alex")
执行结果:
passed user verification...
welcome alex to TV page
复杂装饰器实现:
def Before(request,kwargs): print(‘before‘) def After(request,kwargs): print(‘after‘) def Filter(before_func,after_func): def outer(main_func): def wrapper(request,kargs): before_result = before_func(request,kargs) if(before_result != None): return before_result; main_result = main_func(request,kargs) if(main_result != None): return main_result; after_result = after_func(request,kargs) if(after_result != None): return after_result; return wrapper return outer @Filter(Before, After) def Index(request,kargs): print(‘index‘) Index("alex","abc")
before
index
after
def func(arg1,arg2): if arg1 == 0: print(arg1) print(arg2) arg3 = arg1 + arg2 print(arg3) if arg3 > 100: pass else: func(arg2, arg3) func(0,1)
0
1
1
2
3
5
8
13
21
34
55
89
144
正则表达式,又称正规表示法、常规表示法(英语:Regular Expression,在代码中常简写为regex、regexp或RE),计算机科学的一个概念。正则表达式使用单个字符串来描述、匹配一系列符合某个句法规则的字符串。在很多文本编辑器里,正则表达式通常被用来检索、替换那些符合某个模式的文本。
标签:
原文地址:http://www.cnblogs.com/akon0207/p/5196946.html