函数名的第一类对象及使用

  1. 当作值,赋值给变量

    • def func():
      print(1)
      print(func) #查看函数的内存地址
      a=func
      print(a)
      a()

        

  2. 可以当作容器中的元素

    • 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={} #放到字典中

        

  3. 函数名可以当作函数的参数

    • def func(a):
      a()
      print(111)
      def foo():
      print(222)
      def f1():
      print(333)
      func(f1)
      foo()

        

  4. 函数名可以当作函数的返回值

    • 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(迭代器)
  • 迭代器时基于上一次停留的位置,继续取值,不能取超,否则会报错

  • 迭代器优点:

    • 惰性机制 -- 节省空间

  • 迭代器缺点:

    • 不能直接查看值,迭代器查看到的时迭代器的内存地址

    • 一次性,用完就没了

    • 不能逆行

  • 空间换时间:容器存储大量的元素,取值时间短,但是容器占用空间较大

  • 时间换空间:虽然节省了空间,但是取值时间较长

最新文章

  1. linux终端 字符界面 显示乱码
  2. YOLO: Real-Time Object Detection
  3. IntelliJ 有的时候移动滚动条后会自动回到光标所在位置的解决方法
  4. 第十一篇 SQL Server代理维护计划
  5. struts复合类型传值(对象传值)
  6. SRM 395(1-250pt)
  7. Quantization Method
  8. Vue2.0的变化 ,组件模板,生命周期,循环,自定义键盘指令,过滤器
  9. jdk5升8问题记录-Spring2升4
  10. 按奇偶排序数组 II
  11. bzoj 2460 线性基
  12. 【docker】将Java jar文件生成镜像、上传镜像并生成镜像压缩文件
  13. Python和Java编程题(五)
  14. Java设计模式--缺省适配器模式
  15. docker之镜像管理命令
  16. ERROR 2059 (HY000): Authentication plugin 'caching_sha2_password' cannot be loaded
  17. idea 打包java程序
  18. dubbo dubbo.xsd 报错
  19. github搭建个人博客----------绑定域名访问
  20. 用pip命令安装Python第三方库

热门文章

  1. 生成JavaDoc文档
  2. 查看deepin操作系统版本命令
  3. idea svn提交时,performing vcs refresh时间很长的解决办法
  4. ARC 064 F-Rotated Palindromes
  5. 安装 mysqlclient 报 mysql_config not found
  6. 小程序上拉触底&下拉加载
  7. php环境配置 wampserver 数据库无法连接
  8. 解决树莓派鼠标延迟/迟滞问题-转CSDN博主“Deiki”-sunziren
  9. windows下安装openjdk
  10. cf1276B