一.函数名的运用

  函数名就是一个变量名,但它是一个特殊的变量名,是一个后面加括号可以执行函数的变量名.

 def func():
print("我是一个小小的函数")
a = func
print(a) func()
a() func = 3
print(func)

  函数名的命名规范与变量的命名规范一样.

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

  可以作为参数传给函数

def my():
print("我是my") def proxy(fn): # 代理模式. 装饰器
print("在处理之前")
fn()
print("在处理之后") proxy(my) # 把函数名作为参数传递给另一个函数

  可以作为函数的返回值

 def func():
print("我是func")
a = 10 # 变量
def inner():
print("我是inner")
return inner
# ret = func()
# ret()
func()() # 先运行func() 然后在返回值上加()

二.闭包

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

  好处:1.可以保护的变量不受外界影响

     2.可以让变量常驻内存

    语法:

 def func1():
a =1
def func()
print(a)
return func()

三.迭代器

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

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

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

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

  s = 123
for i in s:
print(i)
print(dir(str)) # dir查看xx类型的数据可以执行哪些方法, __iter__ iterable
print(dir(list)) # __iter__
print(dir(int)) # 没有__iter__
# 所有的带__iter__可以使用for循环的, 可迭代对象 # 可迭代对象可以使用__iter__()来获取到迭代器
# 迭代器里面有__next__()
s = "石可心喜欢赵一宁"
it = s.__iter__() # 获取迭代器
print(dir(it)) # 迭代器里有__iter__ 还有__next__ print(it.__next__()) # 石
print(it.__next__()) # 可
print(it.__next__())# 心
print(it.__next__())# 喜
print(it.__next__())#欢
print(it.__next__())#赵
print(it.__next__())# 一
print(it.__next__())# 宁

  迭代器的特点:

    1.只能向前

    2.惰性机制

    3.省内存(生成器)

  for循环的内部机制

    1. 首先获取到迭代器

    2.使用while循环获取数据

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

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

 it = xx.__iter__()
while 1:
try:
data = it.__next__()
xxxxx
except StopIteration:
break

python值函数名的使用以及闭包,迭代器的更多相关文章

  1. python基础 (函数名,闭包,和迭代器)

    1.函数名作用 函数名本质上就是函数的内存地址或对象. 1.可以被引用 2.可以被当作容器类型的元素 3.可以当作函数的参数和返回值 4.如果记不住的话,那就记住一句话,就当普通变量用 2.闭包 什么 ...

  2. python之函数名,闭包、迭代器

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

  3. python之第一对象,函数名的应用,闭包

    一.第一对象 在 Python 中万物皆为对象,函数也不例外,函数作为对象可以赋值给一个变量.可以作为元素添加到集合对象中.可作为参数值传递给其它函数, 还可以当做函数的返回值,这些特性就是第一类对象 ...

  4. python note 11 函数名的使用、闭包、迭代器

    1.函数名就是一个变量 def func(): print("我是一个小小的函数") a = func print(a) #输出变量存放地址 <function func a ...

  5. python基础学习Day11 函数名的应用、闭包、迭代器

    一.函数名的应用 1.函数名就是函数的内存地址 def func(): print(666) func() print(func) #函数的内存地址 2.函数名可以作为变量 def func1(): ...

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

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

  7. python day11 ——1. 函数名的使⽤ 2. 闭包 3. 迭代器

    ⼀. 函数名的运⽤. 1.函数名的内存地址 def func():    print("呵呵") print(func) 结果: <function func at 0x11 ...

  8. Python函数名做参数,闭包,装饰器

    简单讲解闭包的写法和应用,在这之前,先声明,你定义的任意一个函数都可以作为其他函数的参数.就像下面这段代码的参数func,接收的参数就是一个函数名,在函数体内部使用了func()调用执行函数. 请看下 ...

  9. python_函数名的应用、闭包、装饰器

    0.动态传参内容补充: 0.1 单纯运行如下函数不会报错. def func1(*args,**kwargs): pass func1() 0.2 *的魔性用法 * 在函数定义的时候,代表聚合. *在 ...

随机推荐

  1. Xcode 出现Thread 1: signal SIGABRT

    代码语言:C 出现原因:数组初始化时,循环赋值越界. 例 bool type [30]; for (int i = 0;i<100;i++) type = 0;

  2. 【tips】自动化测试工具 - selenium和phantomJS

    ### 目录清单 selenium和phantomjs概述 selenium常用API 案例操作:模拟登陆csdn 1. selenium和phantomJS是什么东西 selenium是一套web网 ...

  3. atCoder Ants on a Circle(又是蚂蚁问题。。。)

    atCoder Ants on a Circle(又是蚂蚁问题...) 传送门 题意:一个圈,蚂蚁在上面以相同的速度和不同的方向走,问t秒后它们各自的位置. 解法:和经典的蚂蚁问题一致,把相撞的情况看 ...

  4. 【07】AngularJS Filters

    AngularJS Filters 过滤器可以使用一个管道字符(|)添加到表达式和指令中. AngularJS 过滤器 AngularJS 过滤器可用于转换数据: 过滤器 描述 currency[ˈk ...

  5. 特种部队(codevs 1427)

    题目描述 Description 某特种部队接到一个任务,需要潜入一个仓库.该部队士兵分为两路,第一路士兵已经在正面牵制住了敌人,第二路士兵正在悄悄地从后方秘密潜入敌人的仓库.当他们到达仓库时候,发现 ...

  6. IT领域的罗马帝国——微软公司

    微软公司从做软件开始,起步很小.但是盖茨确是一直深耕于战略布局,像一个棋局高手,每一步棋都是看了后面几步. 盖茨居然用9年的时间憋出一个win3.0,成功击败了apple. 而这9年拖住apple的居 ...

  7. 分享一个灰常好的 dapper 扩展插件: Rainbow

    dapper 是一个效率非常高的orm  框架 ,效率要远远大于 我们大微软的EF .    它只有一个类文件,非常之小.(在 EF 5.0 后 微软已经做了 改进) ps; 由于之前我也没测试过,只 ...

  8. Ubuntu 16.04安装Insight实现汇编的调试

    由于Ubuntu从9.04开始就把Insight从APT源中删除,所以使用APT无法安装,而且<Assembly Language Step By Step, for Linux!>此书讲 ...

  9. openCV—Python(2)—— 载入、显示和保存图像

    一.函数简单介绍 1.imread-读取图像 函数原型:imread(filename, flags=None) filename:读取的图像路径名:比如:"H:\img\lena.jpg& ...

  10. android 程序猿跳槽须要注意哪些?

    我是一个工作3年多的android开发,因为公司和个人发展原因.打算跳槽! 这次跳槽又给我好好的上了一课!所以我自己反思总结了一下.然后整理出一下几点 程序猿打算跳槽的时候须要注意的几点. 一 先想好 ...