zoukankan      html  css  js  c++  java
  • python函数进阶

      

    # 函数的命名空间和作用域
    # 内置命名空间
        # 存在于python解释器中,在启动python时,就自动运行内置命名空间比如print() input()即启动就可以使用的命名变量内置的名字,在启动时被加载到内存中
    # 全局命名空间
        # 在程序中从上至下依次被执行的名称变量,放置了我们需要的变量名称
    # 局部命名空间
        # 在程序中定义函数中所定义的名称变量,作用范围只是在该局部范围内有效,当函数结束时,将名称变量会释放
    # 在全局空间中能够使用,内置名称和全局名称
    # 在局部空间中能够使用,内置名称和全局名称和局部名称
    # 在正常情况下,直接使用内置的名字
    # 当我们在全局定义了和内置名字空间中同名的名字时,会使用全局的名字
    # 当我自己有的时候 我就不找我的上级要了
    # 如果自己没有 就找上一级要 上一级没有再找上一级 如果内置的名字空间都没有 就报错
    # 多个函数应该拥有多个独立的局部名字空间,不互相共享
    
    # def f():
    #     a = 1
    #     print( a )
    # print(a)
    # # 在全局空间中使用,局部变量会报错
    # a = []
    # def f():
    #     a.append('ss')
    #     print(a)
    # f()
    # print(a)
    # a = 1
    # def f():
    #     a +=1
    # f()
    # print(a)
    # 在局部变量中可以使用全局变量 但是 当全局变量为不可变类型时,不能再局部空间中对其进行运算
    # 可变数据类型不受影响
    # 如果想要修改,得在局部空间使用global可对全局不可变类型的变量进行改变(但是不建议使用global,因为他会使代码的安全性降低)
    # a = 1
    # def f1():
    #     a = 9
    #     def f2():
    #         b = 2
    #         print('##',a,b)
    #         def f3():
    #             nonlocal a
    #             a += 2
    #             print(a,'===')
    #         f3()
    #         print('&', a)
    #
    #     f2()
    #     print(a,'__')
    # print(a,'@@')
    # f1()
    # # print('a!!',a)
    # def func():
    #     print(123)
    # func1 = func
    # # func1()
    # # func()
    # print(id(func),id(func1))
    # l = [func,func1]
    # for i in l:
    #     i()
    # #函数名是内存地址,可以进行赋值,函数名可以作为容器类型的元素
    def func():
        print(123)
    
    def wahaha(f):
        f()
        return f           #函数名可以作为函数的返回值
    
    qqxing = wahaha(func)   # 函数名可以作为函数的参数
    qqxing()
  • 相关阅读:
    性能测试方案和用例模板
    软件质量报告模板-产品质量度量
    性能测试报告模板
    SQL查询语法30例
    性能测试:Jmeter-Beanshell请求加密实例
    安全性测试:OWASP ZAP 2.8 使用指南(三):ZAP代理设置
    centos7下使用x11远程带窗口安装Oracle
    python Linux 环境 (版本隔离工具)
    Python多版本环境搭建(Linux系统)
    ArrayList1.8
  • 原文地址:https://www.cnblogs.com/hello-boy/p/10170287.html
Copyright © 2011-2022 走看看