1 函数名的应用(第一类对象)
函数名的命名规范和变量是一样的
(1)由数字,下划线,字母组成
(2)不能使用python关键字
(3)不能由纯数字或数字开头
(4)要有意义
(5)不要太长
(6)不要使用中文
(7)推荐使用驼峰或下划线命名
可以作为列表中的元素进行存储
def func1(): pass def func2(): pass lst=[func1,func2] for el in lst: el()
可以作为参数传递给函数
def func(): def proxy(fn): fn() proxy(func)
可以作为函数的返回值
def func(): def inner(): pass return inner func()()
2闭包
闭包:在内层函数中访问外层函数的局部变量
好处:
1 保护你的变量不受外界影响
2 可以让变量常驻内存
写法:
def outer(): a=10 def inner(): print(a) return inner
3 迭代器
使用dir来查看该数据包含了那些方法,可迭代对象可以使用_iter_()来获取到迭代器,可迭代器里面有_next_()
用来遍历列表,字符串 元组......... 可迭代对象
可迭代对象:lterable,里面有_iter_()可以获取迭代器,没有_next_()
迭代器:lteraor 里面有_iter_()可以获取迭代器 还有_next_()
迭代器的特点:
1 只能向前
2 惰性机制
3 省内存
for 循环的内部机制
1 首先获取到迭代器
2 使用while循环获取数据
3 it._next_()来获取数据
4处理异常try: except Stoplteration
lst =["章子怡","王力宏","马勇","张韶涵","茉莉花"] it = lst._iter_() while 1: try: data=it._next_() for el in lst: print(el) except Stoplteration break
结果:章子怡
王力宏
马勇
张韶涵
茉莉花