zoukankan      html  css  js  c++  java
  • 函数

    一.函数的定义:

      对功能或者动作的装封.

      语法:

        def 函数名(形参)

        函数体

        函数名(实参)

      return:

        返回,谁调用就返回到哪

        1.函数中不写 return,返回 None

        2.只写了 return,也返回 None ,结束一个函数的运行

        3. return 值     代表:返回 一个值

        4.return 值1 值2 值3.....一次返回多个结果,打包成元祖返回

             参数:

         1.形参: 在函数声明的位置写的变量

          1) 位置参数

          2) 默认值参数

          3)动态传参

            聚合    接收位置参数的动态传参

            聚合    接收关键字参数的动态传参

          参数列表顺序:

            位置参数 >  *args > 默认值参数 >  **kwargs

          2.实参:函数调用的地方写的具体的值

           1) 位置参数

           2) 关键字参数

           3) 混合参数: 位置 > 关键字

             *  把列表,字符串 ,元祖 打散成位置参数

             **  把字典打散成关键字 参数

         命名空间: 我们的变量在存储的时候就是存储在这片空间中的

         名称空间

            1.内置名称空间 :存放python 解释器为我们提供的名字,list,tuple,str,int这些都是内置命名空间

            2.全局名称空间:我们直接在py文件中, 函数外声明的变量都属于全局命名空间

            3.局部命名空间:在函数中声明的变量会放在局部命名空间

         作用域:

            1.全局作用域: 全局空间空间 + 内置名称空间

            2.局部作用域: 局部名称空间

        globals() 查看全局作用域的名字

        locals() 查看当前作用域的名字

        global     在局部引入全局作用域的内容

        nonlocal   在局部,在内层函数中引入离他最近的那一层的变量

     一  第一类函数 - ->  函数名-->变量名

      1) 函数对象可以像变量一样赋值   2) 还可以作为列表的元素进行使用  3) 可以作为返回值返回  4) 可以作为参数进行传递

    二  闭包 --> 函数的嵌套

          内层函数对外层函数中的变量的使用 

                     好处: 1) 保护变量不被侵害    2)  让一个 变量常驻内存

          如何通过代码查看一个闭包

          __closure__:  有东西就是闭包,没东西就不是闭包

    三 迭代器 固定的思路:  for 循环

      一个数据类型中包含了__iter__函数表示这个数据是可迭代的

      dir(数据): 返回这个数据可以执行的所有操作

      判断迭代器和可迭代对象的方案(野路子)

      __iter__          可迭代的

      __iter__       __next__   迭代器

      判断迭代器和可迭代对象的方案(官方)

      from collections import Iterable, Iterator

      isinstance(对象,Iterable) 是否是可迭代的

      isinstance(对象,Iterator)是否是迭代器

      模拟for循环

      lst = []

      it = lst.__iter__()

      while 1:

        try:

          it.__next__()

        except StopIteration:

          break

      特征: 1) 省内存(生成器)    2) 惰性机制     3)  只能向前,不能后退          作用: 统一 了各种数据类型的遍历

        

  • 相关阅读:
    shell中标准输出,标准输入,标准错误输出详解
    shell 脚本 编辑颜色代码
    Docker容器:磁盘&内存&CPU资源限制实战
    Linux crontab 详解
    vsftp虚拟用户
    学习kail linux 几个不错的网站
    多线程协作方法sleep、yield、wait、join和同步和安全等问题
    Redis 命令参考
    JVM的内存区域划分(网上找的)
    工业软硬件系统名词
  • 原文地址:https://www.cnblogs.com/wenqi2121/p/10099105.html
Copyright © 2011-2022 走看看