码迷,mamicode.com
首页 > 其他好文 > 详细

函数的进阶

时间:2018-08-10 23:12:58      阅读:198      评论:0      收藏:0      [点我收藏+]

标签:dir   返回   返回值   传递   好处   生成器   处理异常   top   迭代器   

一.函数的命名:

1.函数的名的应用(第一类对象)

函数名的命名规范和变量是一样的.

函数名其实就是变量名

1 def func():
2     print(我是一个小小的函数)
3 a=func
4 func()
5 
6 func=3
7 print(func)

可以作为列表中的元素进行存储:

1 def func1():
2     print(我是1)
3 def func2():
4     print(我是2)
5 def func3():
6     print(我是3)
7 lst=[func1,func2,func3]
8 for el in lst:
9     el()

可以作为参数传递给函数:

1 def my():
2     print("我是my")
3 def proxy(fn):
4     print(在处理之前)
5     fn()
6     print(在处理之后)
7 proxy(my)

可以作为函数的返回值

 1 def func1():
 2     print(我是func1)
 3 def func2():
 4     print(我是func2)
 5 def func(fn, gn):
 6     print(我是funcc)
 7     fn()
 8     gn()
 9     print(哈哈)
10 func(func1,func2)

2.闭包

闭包:在内层函数中访问外层函数的局部变量

好处:

        1.保护你的变量不受外界影响

        2.可以让变量常驻内存

写法:

1 def outer():
2      a=10
3      def inner()
4           print(a)
5      return inner

3.迭代器

使用dir来检查看该数据包含了哪些方法

用来遍历列表,字符串,元组......可迭代对象

可迭代对象:Iterable,里面有__iter__()可以获取迭代器,没有__next__()

 1 s=123
 2 for i in s:
 3     print(i)
 4 print(dir(str))
 5 print(dir(list))
 6 print(dir(int))
 7 s=唐太宗李世民
 8 it=s.__iter__()
 9 # print(dir(it))
10 print(it.__next__())
11 print(it.__next__())
12 print(it.__next__())

迭代器特点:

1.只能向前

2.惰性机制

3.省内存(生成器)

for循环的内部机制.

1.首先获得迭代器.

2.使用while循环获取数据

3.it.__next__()来获取数据.

4.处理异常try:xxx  except StopIteration:

1 lst = [李渊, 李世民, 李治, 武曌, 李显, 李旦]
2 # for el in lst:
3 #     print(el)
4 i=lst.__iter__()
5 while 1:
6     try:
7         print(i.__next__())
8     except StopIteration:
9         break

 

函数的进阶

标签:dir   返回   返回值   传递   好处   生成器   处理异常   top   迭代器   

原文地址:https://www.cnblogs.com/982336352ryan/p/9457532.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!