zoukankan      html  css  js  c++  java
  • python中的全局变量和局部变量

    #!/usr/bin/env python
    # -*- coding: utf-8 -*-
    # @Time    : 2021/3/14 16:56
    # @Author  : banzhu
    # @File    : variable.py
    """
    作用域(Scope),就是变量的有效范围,就是变量可以在哪个范围以内使用
    局部变量(Local Variable):定义在函数内部的变量是局部变量,局部变量的作用范围只能在函数内部生效,不能在函数外被引用
    全局变量(Global Variable):在整个函数中都可以访问到,但不要试图在函数内部修改全局变量的值,
    因为Python会创建一个新的局部变量替代(名字与全局变量相同),但真正的全局变量是不动的
    """
    # 局部变量:
    def myfun():
        a = 0  # 局部变量
        a += 1
        print("myfun a = ", a)
    
    def myfun2():
        a = [1, 2, 3] # 局部变量
        a = [i + 1 for i in a]
        print("myfun2  a = ", a)
    
    # 定义全局变量的方式有2种
    # 1.在函数体外定义的变量,一定是全局变量
    
    # 整数,字符串等不可更改
    a = 1  # a为全局变量
    
    def myfun():
        a = 2  # 局部变量
        a += 1
        print("函数中 a = ", a)
    
    myfun()
    print("函数外 a = ", a)
    
    # 2.在函数体内定义全局变量,使用global关键字对变量进行修饰后,该变量会变为全局变量
    
    # 利用global关键字 引用全局变量
    a = 1
    
    def myfun():
        global a  # 使用a之前用global
        a += 1
        print("函数中 a = ", a)
    
    myfun()
    print("函数外 a = ", a)
    
    # 获取指定作用域(全局或局部)内所有的变量
    # 1.globals()函数。返回一个包含全局范围内所有变量的字典,该字典中的每个键值对,键为变量名,值为该变量的值
    # 2.locals()函数。在函数内部调用 locals() 函数,会获得包含所有局部变量的字典;而在全局范文内调用 locals() 函数,其功能和 globals() 函数相同
    # 3.vars()函数。vas(object)返回一个指定 object 对象范围内所有变量组成的字典,如果不传入object 参数,vars() 和 locals() 的作用完全相同。
    处在这个俗世,也得让自己变得更好吧
  • 相关阅读:
    mtext中的las参数的作用
    并行与CPE
    根据局部性得出最优矩阵乘法写法
    cache中的thrashing问题和应对办法
    csapp(3e)的bomblab的phase_6详解(没有详细到逐行解析的程度)
    计划
    遇到问题怎么处理?
    数据对齐的几问
    python进阶(八、mysql:完整性约束)
    python进阶(七、mysql:表操作、数据操作、数据类型)
  • 原文地址:https://www.cnblogs.com/butaileng7/p/14534279.html
Copyright © 2011-2022 走看看