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

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

  • 迭代器优点:

    • 惰性机制 -- 节省空间

  • 迭代器缺点:

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

    • 一次性,用完就没了

    • 不能逆行

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

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

Python之路Day11的更多相关文章

  1. python之路-Day11

    引子 到目前为止,我们已经学了网络并发编程的2个套路, 多进程,多线程,这哥俩的优势和劣势都非常的明显,我们一起来回顾下 协程 协程,又称微线程,纤程.英文名Coroutine.一句话说明什么是线程: ...

  2. 初学python之路-day11

    一.函数的参数:实参与形参 # 参数介绍: # 函数为什么要有参数:因为内部的函数体需要外部的数据 # 怎么定义函数的参数:在定义函数阶段,函数名后面()中来定义函数的参数 # 怎么使用函数的参数:在 ...

  3. python 之路,Day11 (下)- sqlalchemy ORM

    python 之路,Day11 - sqlalchemy ORM   本节内容 ORM介绍 sqlalchemy安装 sqlalchemy基本使用 多外键关联 多对多关系 表结构设计作业 1. ORM ...

  4. python 之路,Day11(上) - python mysql and ORM

    python 之路,Day11 - python mysql and ORM   本节内容 数据库介绍 mysql 数据库安装使用 mysql管理 mysql 数据类型 常用mysql命令 创建数据库 ...

  5. Python之路【第一篇】python基础

    一.python开发 1.开发: 1)高级语言:python .Java .PHP. C#  Go ruby  c++  ===>字节码 2)低级语言:c .汇编 2.语言之间的对比: 1)py ...

  6. Python之路

    Python学习之路 第一天   Python之路,Day1 - Python基础1介绍.基本语法.流程控制              第一天作业第二天   Python之路,Day2 - Pytho ...

  7. python之路 目录

    目录 python python_基础总结1 python由来 字符编码 注释 pyc文件 python变量 导入模块 获取用户输入 流程控制if while python 基础2 编码转换 pych ...

  8. Python之路【第十九篇】:爬虫

    Python之路[第十九篇]:爬虫   网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本.另外一些不常使用 ...

  9. Python之路【第十八篇】:Web框架们

    Python之路[第十八篇]:Web框架们   Python的WEB框架 Bottle Bottle是一个快速.简洁.轻量级的基于WSIG的微型Web框架,此框架只由一个 .py 文件,除了Pytho ...

随机推荐

  1. C#设计模式学习笔记:(16)观察者模式

    本笔记摘抄自:https://www.cnblogs.com/PatrickLiu/p/7928521.html,记录一下学习过程以备后续查用. 一.引言 今天我们要讲行为型设计模式的第四个模式--观 ...

  2. C# 多线程之通过Timer开启线程的例子

    本例通过Timer的tick()方法触发TimerCallback委托来开辟新的线程,线程中的具体工作通过一个静态方法作为参数给TimerCallback委托. using System; using ...

  3. JavaScript-状态模式

    状态模式 一个对象有状态变化 每次状态变化都会触发一个逻辑 不能总是用 if...else 来控制 示例:交通信号灯的不同颜色变化 传统的 UML 类图 javascript 中的 UML 类图 cl ...

  4. 百度架构师带你进阶高级JAVA架构,让你快速从代码开发者成长为系统架构者

    百度架构师带你进阶高级JAVA架构,让你快速从代码开发者成长为系统架构者 1.

  5. Python爬虫实战教程:爬取网易新闻;爬虫精选 高手技巧

    前言本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. stars声明很多小伙伴学习Python过程中会遇到各种烦恼问题解决不了.为 ...

  6. MSSQL sqlserver 统计"一个字符串"在"另一个字符串"中出现的次数的方法

    转自 http://www.maomao365.com/?p=9858  摘要: 下文讲述sqlserver中最快获取一个字符串在另一个字符串中出现个数的方法分享 实验环境:sql server 20 ...

  7. vim 进化 编码问题

    " 解决菜单乱码 source $VIMRUNTIME/delmenu.vim source $VIMRUNTIME/menu.vim " 防止文件显示乱码 set fileenc ...

  8. css flex弹性布局学习总结

    一.简要介绍 flex( flexible box:弹性布局盒模型),是2009年w3c提出的一种可以简洁.快速弹性布局的属性. 主要思想是给予容器控制内部元素高度和宽度的能力.目前已得到以下浏览器支 ...

  9. 2.Python函数/方法(method/function)详解

    1.什么是函数 它是一段功能代码,理解为一种功能行为,在内存中有空间区域,函数需要被调用才能执行(通过函数名来调用): 好处: 1).提高代码的复用性 2).提升代码的阅读性 3).增加代码的扩展性 ...

  10. Linux systemctl系统工具常用总结(详)

    systemctl是一个系统自带的服务管理工具,可以管理系统的服务的,启动.停止.重启.自启.监视.也可以对脚本程序后台运行管理. 文章以nginx.service举例 基础命令: systemctl ...