1.函数名的应用(第一类对象)

  函数名的命名规范和变量是一样的

  函数名其实就是变量名

  可以作为列表中的元素进行储存.

  

def func1():
pass
def func2():
pass
lst = [func1,func2]
for el in lst:
el()

  可以作为参数传递给函数.

  

def func():
pass
def proxy(fn):
fn()
proxy(func)

  可以作为函数的返回值

def func():
def inner():
pass
return inner
func()()

2.闭包

  闭包:在内层函数中访问外层函数的局部变量

  好处:

    1.保护你的变量不受外界影响

    2.可以让变量常住内存

  写法:

    

def outer():
a = 10
def inner():
print(a)
return inner

3.迭代器

  使用dir来查看该数据包含了哪些方法

  用来遍历列表,字符串,元组...可迭代对象

  可迭代对象:Iterable,里面有__iter__()可以获取迭代器,没有__next__()

  迭代器:  Iterator,里面有__iter__()可以获取迭代器,还有__next__()

  迭代器特点:

      1.只能向前.

      2.惰性机制.

      3.省内存(生成器)

  for循环的内部机制.

      1.首先获取到迭代器.

      2.使用while循环获取数据

      3.it.__next__()来获取数据

      4.处理异常 try:xxx except StopIteration:

      

it = xx.__iter__()
while 1 :
try:
date = it.__next__()
xxxxxx
except StopIteration:
break

python 函数名的应用(第一类对象),闭包,迭代器的更多相关文章

  1. Python_Mix*函数名的使用以及第一类对象,闭包,迭代器,for循环的内部机制

    一:函数名的应用(第一类对象) 函数名的命名规范和变量是一样的,函数名其实就是变量名, 0)函数名可以赋值给其他变量 def func(): #定义一个名为func的函数 print('my ange ...

  2. python 第一类对象 闭包 迭代器

    ########################总结########################### 1. 函数名 -> 第一类对象 函数名就是变量名. 函数可以赋值 函数可以作为集合类的 ...

  3. python第一类对象,闭包,迭代器

    一.第一类对象 第一类对象 -> 函数名 -> 变量名 1.特征:     函数对象可以像变量一样进行赋值     还可以作为列表的元素进行使用     还可以作为返回值返回     还可 ...

  4. 巨蟒python全栈开发-第11天 第一类对象 闭包 迭代器

    一.今日主要内容总览(重点) 1.第一类对象->函数名=>变量名 (1)函数对象可以像变量一样进行赋值 (2)还可以作为列表的元素进行使用 (3)还可以作为返回值返回 (4)还可以作为参数 ...

  5. day11 第一类对象 闭包 迭代器

    今日主要内容: 1 . 第一类对象 -->函数名--> 变量名 2. 闭包 -->函数的嵌套 3. 迭代器 --> 固定的思想 for 循环 第一类对象  : 函数对象介意向变 ...

  6. python函数名的应用、闭包和迭代器

    一.函数名的应用(第一类对象) 函数名是一个变量,但它是一个特殊的变量,与括号配合可以执行函数变量. 1.函数名的内存地址 def func(): print("哈哈") prin ...

  7. python 函数名 、闭包 装饰器 day13

    1,函数名的使用. 函数名是函数的名字,本质就是变量,特殊的变量.函数名()加括号就是执行此函数. 1,单独打印函数名就是此函数的内存地址. def func1(): print(555) print ...

  8. day12 python函数名的应用 闭包 迭代器

    day12 python   一.函数名的应用(是第一类对象)     函数名的命名规范和变量是一样的     函数名其实就是变量名 def func():     print('i am funct ...

  9. 13 Python之第一类对象闭包和迭代器

      def fn():     print("我叫fn") fn() print(fn)## <function fn at 0x0000000001D12E18> f ...

随机推荐

  1. C# 设计模式巩固 - 抽象工厂模式

    前言   继续工厂模式高级版,抽象工厂模式.抽象工厂模式其实是从工厂方法模式拓展而来.在实际的生活中一个工厂的产品不可能是单一的,肯定是多种系列的产品. 介绍 - 抽象工厂模式 定义:(摘自百度百科~ ...

  2. rsync配置文件的参数详解

    rsyncd.conf配置文件常用参数说明: rsyncd.conf参数 参数说明 uid=rsync rsync使用的用户. gid=rsync rsync使用的用户组(用户所在的组) use ch ...

  3. Netlink 基础知识

    Netlink 基础知识 Netlink 相对于系统调用,ioctl 以及 /proc 文件系统而言具有以下优点: 1. 用户仅需要在 include/linux/netlink.h 中增加一个新类型 ...

  4. android mvp RxJava 框架结构分析

    一个MVP结构:M是model,V是Fragment,P是提供者,P持有V和Model,控制获取数据并给V赋值.(结合了RXJava Retrofit和okHttp)

  5. 终于也忍不住来写oi经历了

    感觉好绝望. 突然间觉得这么长时间的oi学了就像没学一样,这么多的题做了就像没做一样. 努力付出,却不知希望在何处,也不知道该怎么办. 我好丧啊. 但是又没有办法 既然当初选择oi这条路 就只能继续走 ...

  6. Java基础拾遗(一)

    (尊重劳动成果,转载请注明出处:http://blog.csdn.net/qq_25827845/article/details/76358391冷血之心的博客) 马上就要秋招了,新的一轮笔试面试马上 ...

  7. 第23课 #error和#line使用分析

    #error的用法: 示例程序: #include <stdio.h> #ifndef __cplusplus #error This file should be processed w ...

  8. 关于FreeMarker自定义TemplateDirectiveModel

    [转载来源:http://zwllxs.iteye.com/blog/2036826] java代码如下: import freemarker.core.Environment; import fre ...

  9. js实现图片上传

    //上传图片 function uploadImg(){ //loading $("#loading").ajaxStart(function() { $(this).show() ...

  10. js 字符串和数组注意点

    var a="foo"; var b=[ "f","o","o"]; a[1]="o"; b[1]= ...