zoukankan      html  css  js  c++  java
  • Python 全局变量

    #-*- coding:utf-8 -*-
    
    '''
    在python中,不存在类型的说法,导致python定义与赋值的界限并不是那么清楚
    
    '''
    
    num = 0
    
    def test1():
            #python中此处的num变量被理解为定义了一个num的临时变量并且完成赋值
            #并非是修改全局变量num,C语言中因为存在类型,所以变量的定义与变量的赋值不会混淆,python不存在类型的概念,所以此处产生了歧义
            num = 10
    
    test1()
    print(num) #打印0 并没有修改变量
    
    
    #在python中如果修改在函数中修改一个全局变量的值,需要使用global关键字来申明一下
    def test2():
            global num
            num = 22
    test2()
    print("="*10)
    print(num)
    
    
    #global的作用范围只是他自己的作用域,超过作用域将没有效果
    def test3():
            num = 33
    
    print("*"*10)
    
    print(num)  #打印22 num的值没有发生变化
    #-*- coding:utf-8 -*-
    
    #测试全局变量是否需要声明才能使用
    
    g_list = [1,2,3,4,5]
    
    g_num =100
    
    def tetsGlobal():
            print(g_num)
            for a in g_list:
                    print(a)
    
    
    tetsGlobal()
    
    #结果:函数中可以正常打印全局变量
    
    
    #结论:如果存在全局变量与局部变量同名,需要声明全局变量,其他场景下不加也不会报错
    #推荐在函数开头加上全局声明
    
    
    
    #推荐写法
    def correctFun():
            global g_num
            print("==推荐写法===")
            print(g_num)
            g_num = 20
            print(g_num)
    
    
    
    
    correctFun()
    
    print(g_num)
  • 相关阅读:
    事物的五种传播机制与七种传播行为
    Spring jdbcTemplate
    SpriingMVC执行流程结构
    SpringMVC视图解析器
    promise的基本使用和理解
    集合set的类型转换
    数据结构小结一
    Dotween的一些常用方法记录
    线程与进程的解释
    反射和特性
  • 原文地址:https://www.cnblogs.com/zhanggaofeng/p/9229967.html
Copyright © 2011-2022 走看看