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

    三元运算

    a = 1
    b = 5
    c = a if a>b else b
    print(c)

    构成

    变量 = 条件返回True的结果 if 条件 else 条件返回False的结果

    必须要有返回的结果

    必须要有if和else

    只能是简单的情况

    def func(a,b):
        return a if a>b else b
    c = func(3,5)
    print(c)

    函数进阶

    命名空间和作用域

    命名空间分为:内置命名空间,全局命名空间,局部命名空间

    内置命名空间

      就是python解释器一启动就可以使用的名字,存储在内置命名空间中

      内置的名字在启动解释器的时候被加载进内存里

    全局命名空间

      是在程序从上到下被执行的过程中依次被加载进内存的

      放置了我们设置的所有变量名和函数名

    局部命名空间

      就是函数内部定义的名字

      当调用函数的时候,才会产生这个名称空间,随着函数执行的结束,这个命名空间就又消失了

    相关联系

    在局部;可以使用全局,内置命名空间中的名字

    在全局:可以使用内置命名空间的名字,但是不能用局部中的名字

    在内置:不能使用局部和全局的名字

    这个叫 依赖倒置原则

    在正常情况下,直接使用内置的名字

    当我们在全局定义了和内置名字空间中同名的名字时,会使用全局的名字

    当本级有的时候,就不向上一级寻找

    当本级没有的时候就向上一级寻找

    作用域

    作用域有:全局作用域,局部作用域

    全局作用域

      作用在全局,内置和全局命名空间中的名字都属于全局作用域

    局部作用域

      作用在局部 函数(局部名字看见中的名字属于局部作用域)

    对于不可变数据类型,在局部可以查看全局作用域中的变量

    但是不能直接修改

    如果想修改,需要在程序的开始添加global声明

    如果在局部(函数)内声明一个global变量,那么这个变量在局部的所有操作将多全局的变量有效

    locals和globals

    locals   指的是 本地的   它的作用是放在哪里就打印哪里的名字,如果在全局就打印全局,如果在局部就打印局部

    globals   不管在哪里 永远打印全局的名字

  • 相关阅读:
    一个基于JBoss5.1+EJB3.0 登陆应用
    专题开发十二:JEECG微云高速开发平台-基础用户权限
    linux监控脚本
    centos Ddos防范开源软件使用及apache ab压测 测试
    centos curl web站点监控实践
    linux Qt5开发案例实践
    CentOS 基于KVM的云计算之虚拟化libvirt shell --- virsh
    linux shell命令行下操作mysql 删除mysql指定数据库下的所有表--亲测成功百分百测试通过--绝对可靠
    C指针
    Aix5~6小机运维
  • 原文地址:https://www.cnblogs.com/GrandDarkness/p/8125918.html
Copyright © 2011-2022 走看看