zoukankan      html  css  js  c++  java
  • 函数对象和名称空间

    函数

    函数时第一类对象

    1.函数名可以被引用

    2.函数名可当作参数去使用

    3.函数名可以当作返回值使用

    传参时,如果无特殊需求,一定不能加(),否则就当场执行

    def index():

      print(‘from index’)

    def func(a):

      return a

      a=func(index) a() 

    执行结果:

      from index

    4.函数名可以被当作容器类型的元素

    def func():
        print('from func')
    
    
    l1 = [1, '2', func, func()]
    f = l1[2]
    print(f)
    
    
    from func
    <function func at 0x00000237E4132EA0>

    5.函数的嵌套调用

    6.函数的嵌套定义

    名称空间

    存放名字的空间

    分类:

      要拿到一个变量值,先进入名称空间,拿到变量名,得到与他绑定的关系

    1.内置名称空间

      python提前给的定义完的名字,存在于内置空间

    2.全局名称空间

      存放于文件级别的名称就是全局名称空间

    if,while,for内部定义的名字执行后,都存放于全局名称空间

    3.局部名称空间

      def index():

        a =1

        print(a)

      index ()

      print(a)报错

    生命周期:

    1.内置名称空间

      在python解释器启动时生效,关闭python解释器的时候失效

    2.全局名称空间

      当你启动当前这个py文件时侯就开始生效,当前页代码执行结束之后失效

    3.局部名称空间

    当你调用当前函数时生效,函数代码执行结束时就失效

    名称空间查找顺序:

      局部:局部》全局》内置

      全局:全局》内置  #内置找不到报错

      函数内部使用名字,在定义阶段已经规定死了,与你位置无关

    作用域:

      分类:

        全局作用域  全局可以调用的名字,内置名称空间+全局名称空间就存在于全局作用域

        局部作用域  局部可以调用局部名称空间

    globa 声明全局变量

    nonlocal  在局部中声明局部变量

    可变类型可以在局部修改上层外部变量的值

  • 相关阅读:
    Python量化分析,计算KDJ
    Ubuntu16.04安装Python3.6 和pip(python3 各版本切换)
    使用docker加载已有镜像安装Hyperledger Fabric v1.1.0
    Ubuntu 16.04将左侧面板置于底部
    解决Flask局域网内访问不了的问题
    Ubuntu 16.04 安装Go 1.9.2
    Ubuntu16.04下安装Hyperledger Fabric 1.0.0
    Ubuntu 16.04安装Docker-CE
    用Python抓取网页并解析
    图解python中赋值、浅拷贝、深拷贝的区别
  • 原文地址:https://www.cnblogs.com/godlover/p/11835787.html
Copyright © 2011-2022 走看看