• python局部和全局变量


    全局变量和局部变量

    1、局部变量

    局部变量就是python函数内定义的变量

    其作用范围也就是函数内部有效而且优先,出了此函数就无效

    操作

    name='全局'
    def fun1():
        name='局部'
        print('fun1:',name)
    def fun2():
        print(name)
    def main():
        fun1()
        fun2()
    if __name__=="__main__":
        main()
    

    结果

    fun1: 局部
    fun2 全局
    

    我们可以看出局部变量作用范围有限

    2、全局变量

    从创建开始到程序结束都有效果

    操作

    name='全局'
    def fun1():
        name='局部'
        print('fun1:',name)
    def fun2():
        print('fun2',name)
    def main():
        print('main:',name)
        fun1()
        fun2()
    if __name__=="__main__":
        main()
    

    结果

    main: 全局
    fun1: 局部
    fun2 全局
    

    global声明变量

    在python中全局变量不像java或者c语言一样直接可在函数中修改全局变量

    所以,python中修改全局变量需要 用global声明(只限于全局变量为不可变)

    操作

    name='全局'
    def fun1():
        name='局部'
        print('fun1:',name)
    def fun2():
        print('fun2',name)
    def fun3():
        global name #声明全局变量
        name+="hhhhh"
    def main():
        print('main:',name)
        fun1()
        fun2()
        fun3()
        print(name)
    
    if __name__=="__main__":
        main()
    

    结果

    main: 全局
    fun1: 局部
    fun2 全局
    全局hhhhh
    

    当全局变量可变时

    name='全局'
    list=[1,2,3,4]#可变
    def fun1():
        name='局部'
        print('fun1:',name)
    def fun2():
        print('fun2',name)
    def fun3():
        global name #声明全局变量
        list.append(6)
        name+="hhhhh"
    def main():
        print('main:',name)
        fun1()
        fun2()
        fun3()
        print(name)
        print(list)
    
    if __name__=="__main__":
        main()
    

    结果

    main: 全局
    fun1: 局部
    fun2 全局
    全局hhhhh
    [1, 2, 3, 4, 6]
    
  • 相关阅读:
    字符编码中的英文字母、汉字占有的字节长度。
    Socket Programming in C#--Conclusion
    Socket Programming in C#--Server Side
    Socket Programming in C#--Multiple Sockets
    Socket Programming in C#--Getting Started
    Socket Programming in C#--Introduction
    针对Model类的代码修剪器
    Mybatis 代码生成器(集成通用Mapper)
    MySQL 常用字段类型与对应的Java类型
    @RestController和@GetMapping
  • 原文地址:https://www.cnblogs.com/liuzhijun666/p/13127310.html
Copyright © 2020-2023  润新知