函数的进阶

Posted 982336352ryan

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了函数的进阶相关的知识,希望对你有一定的参考价值。

一.函数的命名:

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

 

以上是关于函数的进阶的主要内容,如果未能解决你的问题,请参考以下文章

我的C语言学习进阶之旅解决 Visual Studio 2019 报错:错误 C4996 ‘fscanf‘: This function or variable may be unsafe.(代码片段

我的C语言学习进阶之旅解决 Visual Studio 2019 报错:错误 C4996 ‘fscanf‘: This function or variable may be unsafe.(代码片段

我的Android进阶之旅关于Android平台获取文件的mime类型:为啥不传小写后缀名就获取不到mimeType?为啥android 4.4系统获取不到webp格式的mimeType呢?(代码片段

我的Android进阶之旅关于Android平台获取文件的mime类型:为啥不传小写后缀名就获取不到mimeType?为啥android 4.4系统获取不到webp格式的mimeType呢?(代码片段

Atom编辑器入门到精通 Atom使用进阶

Atom编辑器入门到精通 Atom使用进阶