python 函数名的应用(第一类对象),闭包,迭代器
1.函数名的应用(第一类对象)
函数名的命名规范和变量是一样的
函数名其实就是变量名
可以作为列表中的元素进行储存.
def func1():
pass
def func2():
pass
lst = [func1,func2]
for el in lst:
el()
可以作为参数传递给函数.
def func():
pass
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来查看该数据包含了哪些方法
用来遍历列表,字符串,元组...可迭代对象
可迭代对象:Iterable,里面有__iter__()可以获取迭代器,没有__next__()
迭代器: Iterator,里面有__iter__()可以获取迭代器,还有__next__()
迭代器特点:
1.只能向前.
2.惰性机制.
3.省内存(生成器)
for循环的内部机制.
1.首先获取到迭代器.
2.使用while循环获取数据
3.it.__next__()来获取数据
4.处理异常 try:xxx except StopIteration:
it = xx.__iter__()
while 1 :
try:
date = it.__next__()
xxxxxx
except StopIteration:
break
python 函数名的应用(第一类对象),闭包,迭代器的更多相关文章
- Python_Mix*函数名的使用以及第一类对象,闭包,迭代器,for循环的内部机制
一:函数名的应用(第一类对象) 函数名的命名规范和变量是一样的,函数名其实就是变量名, 0)函数名可以赋值给其他变量 def func(): #定义一个名为func的函数 print('my ange ...
- python 第一类对象 闭包 迭代器
########################总结########################### 1. 函数名 -> 第一类对象 函数名就是变量名. 函数可以赋值 函数可以作为集合类的 ...
- python第一类对象,闭包,迭代器
一.第一类对象 第一类对象 -> 函数名 -> 变量名 1.特征: 函数对象可以像变量一样进行赋值 还可以作为列表的元素进行使用 还可以作为返回值返回 还可 ...
- 巨蟒python全栈开发-第11天 第一类对象 闭包 迭代器
一.今日主要内容总览(重点) 1.第一类对象->函数名=>变量名 (1)函数对象可以像变量一样进行赋值 (2)还可以作为列表的元素进行使用 (3)还可以作为返回值返回 (4)还可以作为参数 ...
- day11 第一类对象 闭包 迭代器
今日主要内容: 1 . 第一类对象 -->函数名--> 变量名 2. 闭包 -->函数的嵌套 3. 迭代器 --> 固定的思想 for 循环 第一类对象 : 函数对象介意向变 ...
- python函数名的应用、闭包和迭代器
一.函数名的应用(第一类对象) 函数名是一个变量,但它是一个特殊的变量,与括号配合可以执行函数变量. 1.函数名的内存地址 def func(): print("哈哈") prin ...
- python 函数名 、闭包 装饰器 day13
1,函数名的使用. 函数名是函数的名字,本质就是变量,特殊的变量.函数名()加括号就是执行此函数. 1,单独打印函数名就是此函数的内存地址. def func1(): print(555) print ...
- day12 python函数名的应用 闭包 迭代器
day12 python 一.函数名的应用(是第一类对象) 函数名的命名规范和变量是一样的 函数名其实就是变量名 def func(): print('i am funct ...
- 13 Python之第一类对象闭包和迭代器
def fn(): print("我叫fn") fn() print(fn)## <function fn at 0x0000000001D12E18> f ...
随机推荐
- poj1698
题解: 网络流 然后似乎反着做块? 代码: #include<cstdio> #include<cstring> #include<algorithm> #incl ...
- poj1273&&hdu1532
题解: 双倍经验 dinic模板题 然后ff过不了... 代码: #include<cstdio> #include<cstring> #include<algorith ...
- CUDA概述
基本概念和定义 CUDA实际上是一种多平台计算系统,最基本的配置是一台CPU主机和一块显卡,两者都能进行计算.其中CPU主机称为host, GPU称为device,CUDA的API程序的命名和参数命名 ...
- 一条命令修改Linux密码
方法一.直接使用passwd命令 /bin/echo newpass|/usr/bin/passwd --stdin username *注:该方式只适用于红帽系操作系统,比如centos,redha ...
- shell脚本实例一
一. 什么是shell 脚本时一种解释性语言: shell脚本保存执行动作: 脚本判定命令的执行条件 脚本来实现动作的批量执行.二.如何创建 vim test.sh ##shell脚本一般都 ...
- NODE 开发 2-3年工作经验 掌握的相关知识
文章 部分答案 内存
- jfc在jsp页面画图,不将图片存在服务器端,只存入会话session(可用)
jfc在jsp页面画图,不将图片存在服务器端,只存入会话session.其中主要用到jfc的一个servlet类. <%@ page contentType="text/html;ch ...
- mysql连接踩坑
本机安装的是wamp,集成了mysql.php.apache.安装了sqlyog客户端. 1.错误代码2003 证明mysql服务没有开启,此时需要开启mysql服务,开启了wamp 2.错误代码10 ...
- 去除inline-block元素间间距的N种方法(转)
一.现象描述 真正意义上的inline-block水平呈现的元素间,换行显示或空格分隔的情况下会有间距,很简单的个例子: <input /> <input type="su ...
- 【老生常谈】Attr与Prop的区别
“你为什么要做一个程序员?”,“因为我有一颗改变世界的心!”,“说人话”,“因为我没朋友...” -------------纯属娱乐 ================================= ...