zoukankan      html  css  js  c++  java
  • day_10 函数名,闭包,迭代器

    1. 函数名的使用
       1.函数名是一个变量,函数名储存的是函数的内存地址
       2.函数名可以赋值给其他变量
       3.函数名可以当容器类对象的元素
       4.函数名可以当其他函数的参数
       5.函数名可以做函数的返回值
    2.闭包:闭包就是内层函数对外层函数(非全局)变量的使用
       1.闭包的作用
         1.可以保护变量不收侵害
    	 2.常用变量常驻内存
       2.闭包的判断
         1.print(函数名._closure_)  返回值为cell表示闭包,返回值为NONE表示不是闭包
    	 2.闭包后内层函数怎么访问外层函数?
    	 一层层返回就行
    	 列:def func1():
    			def func2():
    				def func3():
    					print("嘿嘿")
    			return func3
    		return func2
    		func1()()()
    

      

    3.迭代器 
        1.查看变量能够执行的方法 dir
        2.itrator:迭代器,具有的方法  _iter_(),_next_()
        3.iterable:可迭代的对象 具有的方法  _iter_()
        for循环的机制
        i=lst._iter_()
        while 1:
            try:
                el=i._next_()
                print(el)
            except stopitration
                break
        从迭代器中获取元素的唯一方法_next_
        4.三个特征:
         1.省内存
         2.惰性机制
         3.只能向前(迭代器是一次性用品,想返回只能重新获取迭代器)
    4.如何判断对象是否可迭代
      1.print(dir(对象))  出现了_iter_->可迭代对象
      2.print(dir(对象))  出现了_next_->迭代器
         print("__iter__" in dir(lst)) # True 可迭代的
         print("__next__" in dir(lst)) # False 不是迭代器
         i=xx._iter_(),能够执行的话,i就是一个迭代器,迭代器本身是可迭代的
      3.from cellection import iterable,itreator
        print(isinstance(lis,itreable))  TRUE
        print(isinstance(lis,itreator))  FALSE
    5.关联的小点
         1.defunc(a,b)
         '''
         文档注释
         这个函数用来计算两个数的和并返回
         :param a: 第一个数
         :param b: 第二个数
         :return:  第一个数和第二个数的和
         author:sylar
         date:2018-10-31
         '''
         print("我是func")
         return a + b
     print(func.__doc__) # document 文档注释
     print(func.__name__) # name 名字 获取函数名
         




  • 相关阅读:
    502 bad gateway错误的网关
    nodejs发展
    edgejs
    websocket nodejs实例
    nodejs原码
    node案例
    node 与php整合
    node c#
    jquery
    express
  • 原文地址:https://www.cnblogs.com/tjp40922/p/9890311.html
Copyright © 2011-2022 走看看