zoukankan      html  css  js  c++  java
  • python基础--函数的命名空间and作用域

    函数对象:函数是第一类对象,函数名指向的值是可以被当作参数进行传递的

        1、函数名可以被传递

        2、函数名可以被当作参数传递给其它函数

        3、函数名可以被当作函数的返回值

        4、函数名可以被当作容器类型的参数

    函数的嵌套调用:在函数的内部调用其它的函数,可以将复杂的逻辑简单化

    # 比较输出最大的数
    def my_max(x,y):
        if x > y:
            return x
        return y
    
    
    def my_max4(a,b,c,d):
        res1 = my_max(a,b)
        res2 = my_max(res1,c)
        res3 = my_max(res2,d)
        return res3
    print(my_max4(1,2,10,4))

        定义:写一个函数,用户可以通过传参的不同控制函数执行不同的功能

    名称空间:字面意思是放名字的地方

        解释:存放变量与变量值的内存地址的绑定关系的地方,如果要访问一个变量的话,必须先去名称空间中拿到对应的名字才能够访问变量的值。

        分类:

            内置名称空间:python解释器已经提前给你定义好了的名字(已经存放到内置名称空间中了)

            全局名称空间:文件级别的代码

            局部名称空间:函数体内创建的名字都属于局部名称空间

        生命周期:

            内置名称空间:只要python解释器一启动就立刻创建,当解释器关闭的时候内置空间自动销毁

            全局名称空间:只要你右键运行py文件,就会自动创建py文件程序运行结束自动销毁

            局部名称空间:函数被调用的时候就会自动创建,函数指向结束立即销毁(动态创建动态销毁)

        名字的查找顺序:局部-->全局-->内置

            函数在定义阶段查找名字的顺序就已经固定了,不会因为函数的调用位置变化而变化

            

    作用域:全局作用域、局部作用域

        global:局部修改全局 如果想要修改多个 用逗号隔开

        nonlocal:局部修改局部  如果想要修改多个 用逗号隔开

  • 相关阅读:
    docker学习记录
    TCP/IP基础介绍
    JS对select操作
    js中删除table里所有行
    端口
    js中定时器的使用
    ASP.NET程序中常用的三十三种代码
    NHibernate学习(转)
    条面向对象设计的经验原则(转)
    客户端等select和input控件
  • 原文地址:https://www.cnblogs.com/tulintao/p/11171267.html
Copyright © 2011-2022 走看看