python之路---11 第一类对象 函数名 闭包 迭代器
二十九.
1.函数名的运用
①函数名是⼀个变量, 但它是⼀个特殊的变量, 与括号配合可以执⾏函数的变量
②函数名是一个内存地址
③ 函数名可以赋值给其他变量
④函数名可以当做容器类的元素
⑤函数名可以当做函数的参数
⑥函数名可以作为函数的返回值
2.闭包
闭包就是内层函数, 对外层函数(非全局)的变量的引⽤.
标准的闭包
①优点:1).可以保护变量不受侵害
2),保持一个变量常驻内存
② .__closure__ 查看是否是闭包
返回 None 就不是闭包
返回一个地址 是闭包
③ 在外部调用内部
1).单层
2).多层
3.迭代器
1.一个数据类型中包含了__iter__函数表示这个数据是可迭代的
dir(数据): 返回这个数据可以执行的所有操作
2.判断迭代器和可迭代对象的方案(野路子)
__iter__ Iterable 可迭代的(str, list, tuple, dict, set)
__iter__ __next__ Iterator 迭代器
3.判断迭代器和可迭代对象的方案(官方)
借助两个模块 from collections import Iterable, Iterator
isinstance(对象, Iterable) 是否是可迭代的
isinstance(对象, Iterator) 是否是迭代器
4.模拟for 循环
5.特征:
1. 省内存(生成器)
2. 惰性机制
3. 只能向前. 不能后退
作用:统一了各种数据类型的遍历
python之路---11 第一类对象 函数名 闭包 迭代器的更多相关文章
- python --- 11 第一类对象 函数名 闭包 迭代器
一 .函数名的运用 ①函数名是⼀个变量, 但它是⼀个特殊的变量, 与括号配合可以执⾏函数的变量 ②函数名是一个内存地址 ③ 函数名可以赋值给其他变量 ④函数名可以当做容器类 ...
- python之路--第一类对象,函数名,变量名
一 . 第一类对象 函数对象可以像变量一样进行赋值 , 还可以作为列表的元素进行使用 可以作为返回值返回 , 可以作为参数进行传递 def func(): def people(): print('金 ...
- 第一类对象-> 函数名 -> 变量名
函数对象对象可以像变量一样进行赋值 还可以作为列表的元素进行使用 可以作为返回值返回 可以作为参数进行传递 # def fn(): # print("我叫fn") # fn() # ...
- python中的函数名,闭包,迭代器
一.函数名 函数名是一个变量,但它是一个特殊的变量,与括号配合可以执行函数的变量,单纯print()出的是一个内存地址. def func(): print('你说你有点难追') print(func ...
- day_10 函数名,闭包,迭代器
1. 函数名的使用 1.函数名是一个变量,函数名储存的是函数的内存地址 2.函数名可以赋值给其他变量 3.函数名可以当容器类对象的元素 4.函数名可以当其他函数的参数 5.函数名可以做函数的返回值 2 ...
- Day11--Python--函数名,闭包,迭代器
通过 lst.__iter__()拿到lst.的迭代器 1.函数名第一类对象 函数名就是变量名 1.函数名可以像变量一样互相赋值. 2.可以作为函数的参数,进行传递 3.可以作为返回值返回 4.可以作 ...
- python之路(sed,函数,三元运算)
python之路(sed,函数,三元运算) 一.sed集合 1.set无序,不重复序列 2.创建 se = {11,22,33,33,44} list() #只要是一个类加上()自动执行 list _ ...
- day11函数的参数,函数对象 - 函数名,函数的嵌套调用
复习 # 什么是函数:具体特定功能的代码块 - 特定功能代码块作为一个整体,并给该整体命名,就是函数 # 函数的优点: # 1.减少代码的冗余 # 2.结构清晰,可读性强 # 3.具有复用性,开发效率 ...
- 学习11:内容# 1.函数名第一类对象及使用 ***** # 2.f格式化 *** # 3.迭代器 **** # 4.递归 ****
目录 1.第一类对象 -- 特殊点 2.f.格式化 Python3.6版本以上才能够使用 3.迭代器 迭代 : 器 : 工具 4.递归 1.第一类对象 -- 特殊点 1.可以当做值被赋值给变量 def ...
随机推荐
- DevExpress WinForms使用教程:Ribbon性能
[DevExpress WinForms v18.2下载] DevExpress XAF团队提供Ribbon新能改进,其中XAF Office Module的实际应用程序需要花费很长时间才能加载,导致 ...
- MyEclipse创建Web项目入门指南
MyEclipse 在线订购年终抄底促销!火爆开抢>> MyEclipse最新版下载 本教程将指导您创建和部署简单的Hello World Web项目.在本教程中,您将学习如何: 创建一个 ...
- Linux文件系统命令 rm
命令名:rm 功能:删除某一个文件或者目录 eg: renjg@renjg-HP-Compaq-Pro--MT:~/WorkSpace$ ls BM3 gf k8s minicom_download ...
- mod_fcgid: HTTP request length 136136 (so far) exceeds MaxRequestLen (131072)
原来是fastcgi模式下的设置问题,需要在配置文件.htaccess或者直接在apache的配置文件http.conf 中指明,如下: 查看官方说明有这么一句:Default: FcgidMaxRe ...
- ubantu-vim操作
vim其实就是vi的升级版,vi里的所有命令vim里都可以用,一般使用来说几乎没什么差别. 注:本篇文章区分大小写! vi / vim三级模式的关系: 命令行模式 任何时候,不管用户处于何种模式,只要 ...
- python sub替换方法
命令:re.sub(pattern, repl, string, count=0, flags=0) re.sub 用于替换字符串的匹配项.如果没有匹配到规则,则原字符串不变. 第一个参数:规则 第二 ...
- 更换Homebrew为中科大源
官网:https://brew.sh/index_zh-cn /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com ...
- Ubuntu16.04 执行sudo apt-get update出现E: Sub-process returned an error code错误
Reading package lists... Done E: Problem executing scripts APT::Update::Post-Invoke-Success 'if /usr ...
- python --flask框架的搭建--(flask,python2,python3都可以运行)
在linux搭建flask开发环境: (1)virtualenv -p python3 flasky ---创建虚拟环境 (2)source flasky/bin/act ...
- Oracle对象(视图、序列、索引)
数据库对象:表.视图.序列.索引.同义词创建视图:create view 名 as 子查询描述结构:describe 对象名修改视图:create or replace view 名 as 子查询 视 ...