闭包与迭代器

1.python内置函数

def compare(*args):
    return max(args),min(args)
a,b=compare(1,2,3,4,5,6)
print("max:{},min:{}".format(a,b))

2.若定义的函数参数为可变类型的变量,若果调用改变了此变量,其他可以看到此位置的变量也跟随改变

def extendList(val, list=[]):
    list.append(val)
    return list
list1 = extendList(10)
list2 = extendList(123, [])
lis3=extendList("a")
print('list1=%s' % list1)
print('list2=%s' % list2)
print('list3=%s' % lis3)

3.闭包

def fun():
    name="jack"
    def inner():
        print(name)
    return inner

c=fun()
print(c())

  闭包是内层函数对外层函数变量的引用,目的一是为了使变量常驻内存,二是为了保证参数的安全性

4.迭代与迭代器

迭代数据类型:str,list,dict,tuple,文件操作句柄

同过dir()查询类中定义好的方法,查询是否有__iter__()方法,如若对象中有__iter__()方法,则我们认为次类遵循了迭代协议,可以用此方法获取迭代器

lis=[1,2,3,4,5]
it=lis.__iter__()
while 1:
    try:
        c=it.__next__()
        print(c)
    except: StopIteration
        break

 

posted @ 2018-07-17 19:24  浮云遮月  阅读(117)  评论(0编辑  收藏  举报