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)
  • 相关阅读:
    ThreadPoolExecutor源码解析
    AQS框架
    (转)rvm安装与常用命令
    (转).gitignore详解
    (转)可简化iOS 应用程序开发的6个Xcode小技巧
    (转)webView清除缓存
    (转)git常见错误
    iOS本地通知
    (转)iOS获取设备型号
    (转)iOS平台UDID方案比较
  • 原文地址:https://www.cnblogs.com/zhanggaofeng/p/9229967.html
Copyright © 2011-2022 走看看