zoukankan      html  css  js  c++  java
  • day 10

    """
    一、函数是第一类对象:指的是函数名指的值(函数)可以被当做数据去使用。

    1、可以被引用
    2、可以当做参数传给另一个函数
    3、可以当做函数的返回值 (闭包函数)
    4、可以当作容器里面的元素 (用字典的形式,将购物车的所有功能储存起来,用的时候可直接调用)

    二、函数的嵌套:

    1、函数逇嵌套调用:在调用了一个函数的过程中,其内部代码又调用另一个函数(求四个数中做大值)
    2、函数的嵌套定义:一个函数的内部又定义了另一个函数。(求圆的面积和圆的周长)

    三、名称空间与作用域

    1、名称空间:就是用来存放名字和值内存地址绑定关系的地方(内存空间)》》但凡查找值一定要通过名字,访问名字必需去查找名称空间
    名称空间分三大类:
    1、内置名称空间:存放的是python解释器自带的名字(关键字)
    2、 全局名称空间:存放的是文件级别的名字(全局变量)
    3、局部名称空间:在函数内定义的名字(局部变量)

    生命周期: 1、内置名称空间:在解释器启动时则生效,解释器关闭则失效
    2、 全局名称空间:在解释器解释执行python文件时则生效,文件执行完毕后则失效
    3、局部名称空间:只在调用函数时临时产生该函数的局部名称空间,改函数调用完毕则失效

    加载顺序:内置名称空间 > 全局名称空间 > 局部名称空间

    查找名字的顺序:基于当前位置往上查找
    假设当前站在局部,查找顺序:局部->全局->内置
    假设当前站在全局,查找顺序:全局->内置
    *******
    名字的查找顺序,在函数定义阶段就已经固定死了(即在检测语法时就已经确定了名字的查找顺序),
    与函数的调用位置无关,也就是说无论在任何地方调用函数,都必须回到
    当初定义函数的位置去确定名字的查找关系
    *******
    2、作用域:
    1、全局作用域:包含的是内置名称空间和全局名字空间的名字(全局有效,全局存活)
    2、局部作用域:包含的是局部名称空间的名字

    global:在局部来声明一个名字是来自于全局作用域(全局变量),可以用来在局部修改全局的不可变类型
    nonlocal:声明一个名字是来自当前层外一层作用域(局部变量),可以用来在局部修改外层函数的不可变类型


    四:闭包函数:为一函数体传参数的一种方案

    闭:指的是闭包函数是定义在一个函数内部的函数
    包:该内部函数包含对外层函数作用域名字的引用

    需要结合函数对象(函数可以当做函数的返回值去使用)的概念将闭包函数返回到全局作用域去使用,从而打破函数的层级限制

    为函数参数体的两种方法:
    1、参数传值
    2.闭包函数传值

    # def outter(x,y):
    # # x=1
    # # y=2
    # def func():
    # print(x+y)
    # return func
    #
    # f=outter(1,2)
    # f()


    """
  • 相关阅读:
    JS
    Python之缩进块
    Python快捷键
    Python介绍
    SOAP UI-----测webservice接口
    jmeter分布式压测(多台电脑一起压测)
    jmeter操作数据库
    jmeter压测
    jmeter关联
    jmeter参数化
  • 原文地址:https://www.cnblogs.com/jxl123/p/9398209.html
Copyright © 2011-2022 走看看