Python之路Day11
2024-08-31 11:14:36
函数名的第一类对象及使用
当作值,赋值给变量
def func():
print(1)
print(func) #查看函数的内存地址
a=func
print(a)
a()
可以当作容器中的元素
def func():
print(1)
def foo():
print(2)
#lst.append(func)
#lst.append(foo)
#print(lst)
lst=[func,foo] #放到列表
for i in lst:
i() dic={} #放到字典中
函数名可以当作函数的参数
def func(a):
a()
print(111)
def foo():
print(222)
def f1():
print(333)
func(f1)
foo()
函数名可以当作函数的返回值
def func():
def foo():
print(111)
return foo
func()()
f-strings 格式化
f"{}"
迭代器
可迭代对象
list,tuple,str,set,dict 取值方式只能直接看
只要具有
_iter_()
方法就是一个可迭代对象s._iter_()
-- 将可迭代对象转换成迭代器
具有
_iter_()和_next_()
两个方法的才是迭代器迭代器再执行
_iter_
还是原来的迭代器for 循环的本质
while true:
try:
print(s._next_())
except StopIteration:
break
iter()与_iter_()是一样的
python 2 中有
iter() _iter_() next()
python 3 中
iter()和_iter_() _next_()和next()都有
next()与_next_()是一样的
iter()与next()用法:
l=iter(lst) #iter(迭代对象)
next(l) #next(迭代器)迭代器时基于上一次停留的位置,继续取值,不能取超,否则会报错
迭代器优点:
惰性机制 -- 节省空间
迭代器缺点:
不能直接查看值,迭代器查看到的时迭代器的内存地址
一次性,用完就没了
不能逆行
空间换时间:容器存储大量的元素,取值时间短,但是容器占用空间较大
时间换空间:虽然节省了空间,但是取值时间较长
最新文章
- linux终端 字符界面 显示乱码
- YOLO: Real-Time Object Detection
- IntelliJ 有的时候移动滚动条后会自动回到光标所在位置的解决方法
- 第十一篇 SQL Server代理维护计划
- struts复合类型传值(对象传值)
- SRM 395(1-250pt)
- Quantization Method
- Vue2.0的变化 ,组件模板,生命周期,循环,自定义键盘指令,过滤器
- jdk5升8问题记录-Spring2升4
- 按奇偶排序数组 II
- bzoj 2460 线性基
- 【docker】将Java jar文件生成镜像、上传镜像并生成镜像压缩文件
- Python和Java编程题(五)
- Java设计模式--缺省适配器模式
- docker之镜像管理命令
- ERROR 2059 (HY000): Authentication plugin 'caching_sha2_password' cannot be loaded
- idea 打包java程序
- dubbo dubbo.xsd 报错
- github搭建个人博客----------绑定域名访问
- 用pip命令安装Python第三方库