zoukankan      html  css  js  c++  java
  • Python自动化开发函数02

    Python自动化开发-函数02

    1.函数的全局变量与局部变量

      了解局部变量和全局变量的定义

          在子程序中定义的变量称为局部变量,在程序的一开始定义的变量称为全局变量。全局变量作用域是整个程序,局部变量作用域是定义该变量的子程序。当全局变量与局部变量同名时:在定义局部变量的子程序内,局部变量起作用;在其它地方全局变量起作用。

    例1:全局变量定义

    #!/usr/bin/env python
    # -*- coding:utf-8 -*-
    
    #全局变量定义:没有缩进并且在顶头定义的变量
    name="lucy"
    print(name)
    View Code

    代码运行结果:

    lucy

    例2:局部变量定义

    #!/usr/bin/env python
    # -*- coding:utf-8 -*-
    
    #局部变量定义:有缩进并且没有顶头定义的变量
    def test01():
        name="lily"
        print(name)
    test01()
    View Code

    代码运行结果:

    lily 

    例3:局部变量和全局变量混合使用

    #!/usr/bin/env python
    # -*- coding:utf-8 -*-
    
    # #全局变量定义:没有缩进并且在顶头定义的变量
    name="lucy"
    
    #局部变量定义:有缩进并且没有顶头定义的变量
    def test01():
        name="shiying"
        print(name)
    test01()
    print(name)
    View Code

    代码运行结果:

    shiying
    lucy

    例4:定义全局变量方法二:使用global定义全局变量

    #!/usr/bin/env python
    # -*- coding:utf-8 -*-
    
    #全局变量定义方法二:使用global定义全局变量
    name="haxi"
    def test01():
        global name
        name="shiying"
        print(name)
    test01()
    print(name)
    View Code

    代码运行结果:

    shiying
    shiying

    需要注意:

      a.优先读取局部变量,能读取全局变量,无法对全局变量重新赋值 NAME=“fff”,

           b.如果函数中有global关键字,变量本质上就是全局的那个变量,可读取可赋值 NAME=“fff”

    例1:

    #!/usr/bin/env python
    # -*- coding:utf-8 -*-
    
    #全局变量定义方法二:使用global定义全局变量
    name="haxi"
    def test01():
        global name
        name="shiying"
        print(name)
    
    def test02():
        print(name)
    
    test01()
    print(name)
    View Code

    代码运行结果:

    shiying
    shiying

    例2:

    #!/usr/bin/env python
    # -*- coding:utf-8 -*-
    
    name=["lixian","wangjing"]
    def test02():
        print(name)
    
    #全局变量定义方法二:使用global定义全局变量
    
    def test01():
        global name
        name.append("lucy")
        print(name)
    
    test02()
    test01()
    print(name)
    View Code

    代码运行结果:

    ['lixian', 'wangjing']
    ['lixian', 'wangjing', 'lucy']
    ['lixian', 'wangjing', 'lucy']

    例3:

    #!/usr/bin/env python
    # -*- coding:utf-8 -*-
    
    NAME="lisa"
    def test03():
        name="liyong"
        print(name,NAME)
        def test04():
            name01="litian"
            print(name01)
        test04()
    
    test03()
    View Code

    代码运行结果:

    liyong lisa
    litian

      

    2.函数-前向引用

    例1:函数的前向引用

    #!/usr/bin/env python
    # -*- coding:utf-8 -*-
    
    def bar():
        print("from bar")
    
    def foo():
        print("from foo")
        bar()
    
    foo()
    View Code

    代码运行结果:

    from foo
    from bar

    你不向我走来,我便向你走去。
  • 相关阅读:
    接口文档:第二章:使用Swagger接口的文档在线自动生成
    js断点调试心得
    架构漫谈(二):认识概念是理解架构的基础
    vps 虚拟机 云服务器
    云服务器和虚拟主机的区别
    SQL嵌套子查询和相关子查询的执行过程有什么区别(推荐)
    查询速度优化用not EXISTS 代替 not in
    NULL 与空字符串
    MySQL中处理Null时要注意两大陷阱
    MySQL中NOT IN语句对NULL值的处理
  • 原文地址:https://www.cnblogs.com/renyongbin/p/15743655.html
Copyright © 2011-2022 走看看