一.函数名的运用

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

 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. vue列表渲染,以及鼠标点击改变样式的问题

    在实际项目中,我们进场会遇到鼠标点击该表某个DOM元素的样式,在原生的js或者jquery中,我们会比较熟练的实现这个需求,但是在vue中怎么实现呢? 直接操作DOM?NO!NO! 既然我们的项目使用 ...

  2. ansible playbooks loop循环

    在一个task中循环某个操作 1.标准循环 - name: add several users user: name: "{{ item }}" state: present gr ...

  3. 【ZJOI2017 Round2练习】

    ………………………………………………………………………… DAY1:听说是湖南的题 T1:spaly?毫无想法,写个暴力压压惊 T2:尼克杨问号脸 T3:FFT我不会啊,70points已经尽力了

  4. C. Hexadecimal's Numbers

    C. Hexadecimal's Numbers time limit per test 1 second memory limit per test 64 megabytes input stand ...

  5. [bzoj4033][HAOI2015]树上染色_树形dp

    树上染色 bzoj-4033 HAOI-2015 题目大意:给定一棵n个点的树,让你在其中选出k个作为黑点,其余的是白点,收益为任意两个同色点之间距离的和.求最大收益. 注释:$1\le n\le 2 ...

  6. postgresql vacuum table

    2down vote according to Documentation VACUUM reclaims storage occupied by dead tuples. But according ...

  7. python 元组不变 列表可变

    python 元组不变 列表可变 1,   --元组,注意要有逗号: [1] --列表 竟然才开始写python blog:

  8. 红帽/CentOS ext4无法格式化大分区

    红帽/CentOS 6.5的e2fsprogs版本号为1.41.12较低.无法创建16TB以上的文件系统 下载最新的e2fsprogs,编译安装 ftp://ftp.ntu.edu.tw/linux/ ...

  9. ios method swizzling

      阅读器 iOS开发iOS   本文由TracyYih[博客]翻译自NSHipster的文章Method Swizzling.   在上周associated objects一文中,我们开始探索Ob ...

  10. UVa 10954 Add All(优先队列)

    题意  求把全部数加起来的最小代价  a+b的代价为(a+b) 越先运算的数  要被加的次数越多  所以每次相加的两个数都应该是剩下序列中最小的数  然后结果要放到序列中  也就是优先队列了 #inc ...