第一类对象 函数名 变量名

第一类对象 --> 函数名 --> 变量名

函数对象可以像变量一样进行赋值

还可以作为列表的元素进行使用

可以作为返回值返回

可以作为参数进行传递

闭包-->函数的嵌套

内层函数对外层函数中的变量的使用

好处:

   1.保护变量不被侵害

     2. 让一个变量常驻内存

如何通过代码查看一个闭包

__closure__:有东西就是闭包. 没东西就不是闭包

迭代器 --> 固定的思路. for 循环

  一个数据类型中包含了__iter__函数表示这个数据是可迭代的

  dir(数据): 返回这个数据可以执行的所有操作

判断迭代器和可迭代对象的方案(野路子)

__iter__          可迭代的

__iter__      __next__         迭代器

判断迭代器和可迭代对象的方案(官方)

from collections import Iterable,Iterator

isinstance(对象, Iterable) 是否是可迭代的
isinstance(对象, Iterator) 是否是迭代器

模拟for循环
lst= []
# 拿迭代器
it = lst.__iter__()
while 1:
try:
it.__next__()
except StopIteration:
break

特征:
1. 省内存(生成器)
2. 惰性机制
3. 只能向前. 不能后退

作用:统一了各种数据类型的遍历

原文地址:https://www.cnblogs.com/selina1997/p/10098669.html

时间: 2024-12-11 21:32:51

第一类对象 函数名 变量名的相关文章

第一类对象(函数),闭包及迭代器

第一类对象 函数对象对象可以像变量一样进行赋值 还可以作为列表的元素进行使用 可以作为返回值返回 可以作为参数进行传递 def wrapper(): def inner(): print("alex") return inner # 可以返回函数名 ret = wrapper() ret() # 在函数外访问函数内的函数 闭包 闭包(函数的嵌套) 内层函数对外层函数中的变量的使用 好处: 1. 保护变量不被侵害 2. 让一个变量常驻内存 如何通过代码查看一个闭包 __closure__

python--第一类对象,函数名,变量名

一 . 第一类对象 函数对象可以像变量一样进行赋值 , 还可以作为列表的元素进行使用 可以作为返回值返回 , 可以作为参数进行传递 def func(): def people(): print('金_卡戴珊') print('oh,yes!') print('oh,baby!') return people ret = func() ret() 二 . 闭包 闭包 -> 函数的嵌套 内层函数对外层函数中的变量的使用 好处: 1. 保护变量不被侵害 2. 让一个变量常驻内存 如何通过代码查看一个

python之路---11 第一类对象 函数名 闭包 迭代器

二十九. 1.函数名的运用    ①函数名是?个变量, 但它是?个特殊的变量, 与括号配合可以执?函数的变量 ②函数名是一个内存地址    ③ 函数名可以赋值给其他变量         ④函数名可以当做容器类的元素     ⑤函数名可以当做函数的参数     ⑥函数名可以作为函数的返回值 2.闭包 闭包就是内层函数, 对外层函数(非全局)的变量的引?. 标准的闭包   ①优点:1).可以保护变量不受侵害 2),保持一个变量常驻内存 ②    .__closure__    查看是否是闭包 返回

数据类型 变量名 二进制转换

1.标识符的命名规则有哪些?— ->不遵守 编译不用通过 2.标识符的命名规范有哪些?  不遵守 编译运行都可以通过 包名:xxxyyyzzz 类名.接口名 :XxxYyyZzz 变量名.方法名:xxxYyyZzz 常量名:XXX_YYY_ZZZ 3.Java变量按照数据类型怎么划分?并指出Java的基本数据类型有哪八种 并指出各自占用内存空间的大小 byte short int long char float double boolean 引用数据类型 类 接口 数组4.说明基本数据类型变量之

11 第一类对象 闭包 迭代器

今日主要内容 第一类对象-> 函数名 -> 变量名 函数对象对象可以像变量一样进行赋值 还可以作为列表的元素进行使用 可以作为返回值返回 可以作为参数进行传递 闭包 -> 函数的嵌套 内层函数对外层函数中的变量的使用 好处: 1. 保护变量不被侵害 2. 让一个变量常驻内存 如何通过代码查看一个闭包 __closure__: 有东西就是闭包. 没东西就不是闭包 迭代器 -> 固定的思路. for循环 一个数据类型中包含了__iter__函数表示这个数据是可迭代的 dir(数据):

第十一天 函数名的使用以及第一类对象, 闭包, 迭代器

本节主要内容: 1.函数名的使用以及第一类对象 2.闭包 3.迭代器 一.函数名的运用 函数名是一个变量,但它是一个特殊的变量,与括号配合可以执行函数的变量 1.函数名的内存地址: 2.函数名可以赋值给其他变量 3.函数名可以当作容器类的元素(作为list元素) 4.函数名可以当作函数的 5.函数名可以作为函数的返回值 二.闭包 什么是闭包: 闭包就是内层函数, 对外层函数(非全局)的变量的引用. 叫闭包 在内存函数中调用了外层函数的变量,叫闭包.可以让一个局部变量常驻内存 使用__closur

函数名的运用(第一类对象)以及闭包与迭代器

一.函数名的应用(第一类对象) 1.函数的命名规范和变量是一样的,函数名其实就是变量名. 2.函数名的内存地址 def func(): print("呵呵" print(func) 结果: <function func at 0x1101e4ea0> 3.函数名可以赋值给其他变量 def func(): print("呵呵") print(func) a = func # 把函数当成一个变量赋值给另一个变量 a() # 函数调用 func() 结果: &

规避Javascript多人开发函数和变量重名问题

函数和变量重名始终是一个令人头痛的问题,先讲变量吧,相信了解JS的朋友都知道,在JS中 是没有块级作用域的只有函数作用域,也就是说那些以大括号为界定符的代码块是管不住其中定义 的变量的作用域的,举例: 1 { 2 var num = 110; 3 } 4 console.log(num);//打印结果:110,而不是num is not defined 1 for(var j = 0; j < 5; j++); 2 console.log(j);//结果:5 怎么解决? 一般来说有经验的程序员会

js中变量名提升和函数名提升

首先,js中变量没有块级作用域,但是有函数作用域,即只有函数可以约数变量的作用域. 并且,函数的实质也是一个变量,所以可以改变它的值,即赋值.所以变量名提升和函数名提升非常相像. 1.变量名的提升发生在函数内部.看下面的例子.说明:第一个因为弹出undefined,相当于在上面定义了var num;因为函数内部,定义了var num=20:就相当于在一开始定义了var num;这就是变量名的提升. var num = 10; function func() { alert(num); //und