day_10 函数名,闭包,迭代器
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | 1. 函数名的使用 1. 函数名是一个变量,函数名储存的是函数的内存地址 2. 函数名可以赋值给其他变量 3. 函数名可以当容器类对象的元素 4. 函数名可以当其他函数的参数 5. 函数名可以做函数的返回值 2. 闭包:闭包就是内层函数对外层函数(非全局)变量的使用 1. 闭包的作用 1. 可以保护变量不收侵害 2. 常用变量常驻内存 2. 闭包的判断 1.print (函数名._closure_) 返回值为cell表示闭包,返回值为NONE表示不是闭包 2. 闭包后内层函数怎么访问外层函数? 一层层返回就行 列: def func1(): def func2(): def func3(): print ( "嘿嘿" ) return func3 return func2 func1()()() |
3.迭代器 1.查看变量能够执行的方法 dir 2.itrator:迭代器,具有的方法 _iter_(),_next_() 3.iterable:可迭代的对象 具有的方法 _iter_() for循环的机制 i=lst._iter_() while 1: try: el=i._next_() print(el) except stopitration break 从迭代器中获取元素的唯一方法_next_ 4.三个特征: 1.省内存 2.惰性机制 3.只能向前(迭代器是一次性用品,想返回只能重新获取迭代器)
4.如何判断对象是否可迭代 1.print(dir(对象)) 出现了_iter_->可迭代对象 2.print(dir(对象)) 出现了_next_->迭代器 print("__iter__" in dir(lst)) # True 可迭代的 print("__next__" in dir(lst)) # False 不是迭代器 i=xx._iter_(),能够执行的话,i就是一个迭代器,迭代器本身是可迭代的 3.from cellection import iterable,itreator print(isinstance(lis,itreable)) TRUE print(isinstance(lis,itreator)) FALSE
5.关联的小点 1.defunc(a,b) ''' 文档注释 这个函数用来计算两个数的和并返回 :param a: 第一个数 :param b: 第二个数 :return: 第一个数和第二个数的和 author:sylar date:2018-10-31 ''' print("我是func") return a + b print(func.__doc__) # document 文档注释 print(func.__name__) # name 名字 获取函数名
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器