day11 第一类对象 闭包 迭代器】的更多相关文章

今日主要内容: 1 . 第一类对象 -->函数名--> 变量名 2. 闭包 -->函数的嵌套 3. 迭代器 --> 固定的思想 for 循环 第一类对象  : 函数对象介意向变量一样进行赋值 还可以作为列表的元素进行使用 还可以作为返回值返回 可以作为参数进行传参 闭包 : 内层函数对外层函数的变量的使用 闭包  的优点: 1.可以保护函数不被外界侵害 2 . 让一个变量常驻内存 如何通过函数查看一个闭包: __closure__: 有东西就是闭包,没东西就不是闭包 迭代器 : 如…
一:函数名的应用(第一类对象) 函数名的命名规范和变量是一样的,函数名其实就是变量名, 0)函数名可以赋值给其他变量 def func(): #定义一个名为func的函数 print('my angel') a = func #将函数名func赋值给a func() a() #调用func()和a()#结果为:my angelmy angel#所以函数名是可以赋值给其他变量的 def func(): print("my angel") a = func print(a) func()…
########################总结########################### 1. 函数名 -> 第一类对象 函数名就是变量名. 函数可以赋值 函数可以作为集合类的元素 函数可以作为参数传递 函数可以作为返回值返回 2. 闭包 语法: 内层函数对外层函数的局部变量的使用 def wrapper(): name = "" def inner(): return name return inner 如何查看一个函数是否是闭包 函数名.__closure_…
一.第一类对象 第一类对象 -> 函数名 -> 变量名 1.特征:     函数对象可以像变量一样进行赋值     还可以作为列表的元素进行使用     还可以作为返回值返回     还可以作为参数进行传递 def warpper(): def inner(): print("666") print("inner") return inner ret = warpper() # warpper() 返回值是inner 也就是inner 调用再加() pr…
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…
一.今日主要内容总览(重点) 1.第一类对象->函数名=>变量名 (1)函数对象可以像变量一样进行赋值 (2)还可以作为列表的元素进行使用 (3)还可以作为返回值返回 (4)还可以作为参数进行传递 思想:函数名就是变量名 (不仅指向一块空间,还有自身的意义) 2.闭包->函数的嵌套 (1)内层函数对外层函数中的变量的使用 (2)好处: 1.保护变量不被侵害 2.让一个变量常驻内存 (3)如何通过代码查看一个闭包? __closure__: 有东西就是闭包,没东西就不是闭包 (4)迭代器=…
  def fn():     print("我叫fn") fn() print(fn)## <function fn at 0x0000000001D12E18> fn() gn = fn #函数名可以进行赋值 print(gn)# <function fn at 0x0000000001D12E18> gn()   fn = 666 print(fn) #666   def func1()     print("朱祁镇") def fun…
1. 函数名的运用 函数名是⼀个变量,但它是⼀个特殊的变量,与括号配合可以执⾏函数的变量. 1.1 函数名的内存地址 def func(): print("呵呵") print(func) 结果: <function func at 0x1101e4ea0> 1.2 函数名可以赋值给其他变量 def func(): print("呵呵") print(func) a = func # 把函数当成⼀个变量赋值给另⼀个变量 a() # 函数调⽤ func()…
一.函数名的应用 # 1,函数名就是函数的内存地址,而函数名()则是运行这个函数. def func(): return print(func) # 返回一个地址 # 2,函数名可以作为变量. def func1(): print(666) f1 = func1 f2 = f1 f2() # 就等于func1() 此时执行函数 # 3,函数名可以作为函数的参数. def func1(): print(666) def func2(x): x() func2(func1) # 输出666 func…
函数名的第一类对象及使用,f格式化以及迭代器 1.函数的第一类对象 第一类对象 --特殊点 1.可以当作值被赋值给变量 def func(): print(1) a = func a() 2.可以当作元素存放在容器中 def func() print(1) lst = [func,func,func] for i in lst i() 3.函数名可以当作函数的参数 def func(f): f() def foo(): print(1) func(foo) 4.函数名可以当作函数的返回值 def…
Python函数03/函数名的第一类对象及使用/f 格式化/迭代器/递归 目录 Python函数03/函数名的第一类对象及使用/f 格式化/迭代器/递归 内容纲要 1.函数名的第一类对象及使用 2.f 格式化 3.迭代器 4.递归 5.今日总结 6.今日练习 内容纲要 1.函数名的第一类对象及使用 2.f格式化 3.迭代器 4.递归 1.函数名的第一类对象及使用 第一类对象的的特殊点: 1.可以当做值赋值给变量 # def func(): # print(1) # # print(func) #…
如果对象的属性中有__iter__属性就说明是可迭代的,容器类的数据类型都是可迭代对象 如果对象的属性中既有__iter__属性也有__next__属性,就说明这个对象是迭代器 如何判断一个函数是不是可迭代的,是不是迭代器 方法一 s = ' print('__iter__' in dir(s)) #如果是可迭代内部将存在__iter__属性 f = open('01 今日内容大纲', encoding='utf-8', mode='r') print('__next__' in dir(f))…
一.习题收藏 5.写函数,计算传入字符串中[数字].[字母].[空格] 以及 [其他]的个数,并返回结果. # def func4(s): # dic = { # 'num':0,'alpha':0,'space':0,'others':0 # } # for i in s: # if i.isdigit(): # dic['num'] += 1 # elif i.isalpha(): # dic['alpha'] +=1 # elif i.isspace(): # dic['space'] +…
一 . 第一类对象 函数对象可以像变量一样进行赋值 , 还可以作为列表的元素进行使用 可以作为返回值返回 , 可以作为参数进行传递 def func(): def people(): print('金_卡戴珊') print('oh,yes!') print('oh,baby!') return people ret = func() ret() 二 . 闭包 闭包 -> 函数的嵌套 内层函数对外层函数中的变量的使用 好处: 1. 保护变量不被侵害 2. 让一个变量常驻内存 如何通过代码查看一个…
通过 lst.__iter__()拿到lst.的迭代器 1.函数名第一类对象 函数名就是变量名 1.函数名可以像变量一样互相赋值. 2.可以作为函数的参数,进行传递 3.可以作为返回值返回 4.可以作为集合的元素进行存储-----------------------------------------------------def 函数名(形参): 函数体 函数名(实参) # ()表示调用 #实参必须和形参对得上 函数名的内存地址: def func(): print('呵呵') print(f…
一.第一类对象: 函数名是一个变量,可以当普通变量使用,但它又是一个特殊的变量,与括号配合可以执行函数. 函数名的运用 1.单独打印是一个内存地址 2.可以给其他变量赋值 3.可以作为容器类变量的元素 4.可以作为函数的参数 5.可以作为函数的返回值 二.闭包 如果一个内层函数有对外层函数变量的引用,那么就称为这个内层函数为闭包函数,也叫闭包 那么,如何检查一个函数是不是闭包函数呢? 用__closure__()方法可以检查函数是否是闭包函数,返回值不为None就是闭包函数. def func(…
一.函数名(第一类对象) 函数名是一个变量,但它是一个特殊的变量,与括号配合可以执行函数的变量. def func(): print("呵呵") print(func) 结果: <function func at 0x1101e4ea0> #函数名内存地址 def func(): print("呵呵") print(func) a = func # 把函数当成一个变量赋值给另一个变量 a() # 函数调用 func() #函数名可以当做容器类的元素 de…
1, 函数名的应用,第一类对象 函数名可以像变量一样进行使用 1.赋值 def func(): print("你吃了么?") # print(func) # a = func # 函数名就是一个变量 # print(a) # func() # a() # 就是一个函数的调用 def a(): print("我吃了") func = a func() 2.作为list元素 a = 8 b = 7 c = 1 d = 3 lst = [a, b , c, d] prin…
1.函数名的使用和第一类对象 函数名是一个变量,但它是一个特殊的变量,与括号配合可以执行函数 函数对象可以像变量一样进行赋值,还可以作为列表的元素进行使用,可以作为返回值返回,可以作为参数进行传递 1.函数名的内存地址 def func(): print("呵呵") print(func) 结果: <function func at 0x1101e4ea0> 2.函数名可以赋值给其他变量 def func(): print("呵呵") print(fun…
今日主要内容 1, 函数名的应用,第一类对象 函数名可以像变量一样进行使用   #再函数名后面添加() 才是对函数的调用, 否则打印的是函数的内存地址 1.赋值 2.作为list元素 3.作为参数 def func(): print("吃了了么") def func2(fn): print("我是func2") fn() # 执⾏行行传递过来的fn print("我是func2") func2(func) # 把函数func当成参数传递给func…
day12 python   一.函数名的应用(是第一类对象)     函数名的命名规范和变量是一样的     函数名其实就是变量名 def func():     print('i am function') print(func)         #是函数本身, 是一个内存地址 a = func            #变量可赋值, 函数名也可以 a() func = 6            #函数名就是变量 print(func) a = 10 b = 20 c = 30 lst = […
本篇目录: 一.函数嵌套 二.函数名称空间与作用域 三.函数对象 四.闭包函数 ============================================================================== 一.函数嵌套 1. 函数的嵌套调用 函数内又调用了其他函数(函数平级) def max(x,y): return x if x > y else y def max4(a,b,c,d): res1=max(a,b) res2=max(res1,c) res3=m…
## 复习 '''函数的嵌套定义:在函数内部定义另一个函数 闭包:被嵌套的函数 -- 1.外层通过形参给内层函数传参 -- 2.验证执行 开放封闭原则: 功能可以拓展,但源代码与调用方式都不可以改变 装饰器:装饰器名就是外层函数 @outer@outer  # fn = outer(fn)def fn(): pass''' def wrap(func):    def inner(*args, **kwagrs):        # res = func(*args, **kwagrs)    …
复习 ''' 函数的嵌套定义:在函数内部定义另一个函数 闭包:被嵌套的函数 -- 1.外层通过形参给内层函数传参 -- 2.验证执行 开放封闭原则: 功能可以拓展,但源代码与调用方式都不可以改变 装饰器:装饰器名就是外层函数 @outer @outer # fn = outer(fn) def fn(): pass ''' def wrap(func): def inner(*args, **kwagrs): # res = func(*args, **kwagrs) res = outer.i…
复习 函数的嵌套定义:在函数内部定义另一个函数 闭包:被嵌套的函数 -- 1.外层通过形参给内层函数传参 -- 2.返回内部函数对象---->  延迟执行, 开放封闭原则: 功能可以拓展,但源代码与调用方式都不可以改变 装饰器:装饰器名就是外层函数 @outer @outer  # fn = outer(fn) def fn(): pass 今日内容 1.带参装饰器  |  2.wrapper  |  3.可迭代对象 |   4.迭代器对象  |  5.for 迭代器工作原理 |  6.枚举对象…
刚刚学习Python,对“可迭代对象”和"迭代器对象"的个人理解,不知道对不对. 1.几个概念 (1)迭代工具:包括for循环.列表解析.in成员关系测试.....等等在内的,用于依次访问可迭代对象(容器)内元素的操作(?). (2)迭代器对象:具有__next__()方法的对象.该方法能够自动返回下一个结果,当到达序列结尾时,引发StopIteration异常. (3)可迭代对象:具有__iter__()方法的对象.该方法可获取其迭代器对象. 2.迭代过程(以for循环为例) (1)…
Python可迭代对象.迭代器和生成器 python 函数 表达式 序列 count utf-8 云栖征文 python可迭代对象 python迭代器 python生成器 摘要: 8.1 可迭代对象(Iterable) 大部分对象都是可迭代,只要实现了__iter__方法的对象就是可迭代的. __iter__方法会返回迭代器(iterator)本身,例如: >>> lst = [1,2,3] >>> lst.__iter__() <listiterator obj…
一个网友写的栈,问为啥不能迭代.具有__iter__ 和next方法的对象叫迭代器-七七巴巴黄页网 一个网友写的栈,问为啥不能迭代.具有__iter__ 和next方法的对象叫迭代器 python视频培训班   class stack(object):           def __init__(self):         self.stack = []     def push(self,str1):         self.stack.append(str1)     def pop(…
本节内容 语法糖的概念 列表生成式 生成器(Generator) 可迭代对象(Iterable) 迭代器(Iterator) Iterable.Iterator与Generator之间的关系 一.语法糖的概念 "语法糖",从字面上看应该是一种语法."糖",可以理解为简单.简洁.其实我们也已经意识到,没有这些被称为"语法糖"的语法,我们也能实现相应的功能,而 "语法糖"使我们可以更加简洁.快速的实现这些功能. 只是Python解…
在了解Python的数据结构时,容器(container).可迭代对象(iterable).迭代器(iterator).生成器(generator).列表/集合/字典推导式(list,set,dict comprehension)众多概念参杂在一起,难免让初学者一头雾水,我将用一篇文章试图将这些概念以及它们之间的关系捋清楚. 容器(container) 容器是一种把多个元素组织在一起的数据结构,容器中的元素可以逐个地迭代获取,可以用 in , not in 关键字判断元素是否包含在容器中.通常这…