zoukankan      html  css  js  c++  java
  • Python学习【第9篇】:python中的局部变量与全局变量

    1.全局变量

    全局变量定义后可被下面所有函数进行调用

    例子:

    name = "xiao"
    def chang_name():
    print("chang_name",name)
    chang_name()

    运行结果是:

    chang_name xiao

    在这里一开始name定义的就为全局变量,下面的函数直接调用全局变量并输出

    2.局部变量

    局部变量定义后只在当前函数下有效

    def chang_name():
    name = "xing"
    print("chang_name",name)
    chang_name()
    运行结果为:
    chang_name xing
    在这里定义局部变量name,并赋值,这里的变量只在当前函数下有效

    3.全局变量和局部变量

    当全局变量和局部变量同时出现时,函数内如果定义了局部变量,那么优先输出局部变量,因为输出机制是先查找

    函数内局部变量,未找到再找全局变量(在局部变量和全局变量同名的情况下)

    例子:

    name = "xiao"
    def chang_name():
    name = "xing"
    print("chang_name",name)
    chang_name()
    运行结果是:
    chang_name xing

    (1)
    如果函数内部无global关键字,优先读取局部变量,只能读取全局变量,无法对全局变量进行重新赋值
    (2)
    如果函数内部有global关键字,变量本质上就是全局变量那个值,可读取和重新赋值
    例子:
    name = "xiao"
    def chang_name():
    print(name)
    chang_name()
    运行结果是:
    xiao
    在这里读取的是全局变量,也是无法对全局变量进行赋值操作的

    name = "xiao"
    def chang_name():
    global name
    name = "xing"
    print(name)
    chang_name()

    def chang_name1():
    print(name)
    chang_name1()
    运行结果:
    xing
    xing
    在这里原来全局变量name赋值为xiao,但是我们在第一个函数中定义了global,并重新进行了赋值,所以第二个函数在取全局变量时,已经是被修改过后的变量了


    3.局部变量

  • 相关阅读:
    LeetCode 72. Edit Distance
    LeetCode 71. Simplify Path
    LeetCode 70. Climbing Stairs
    LeetCode 69. Sqrt(x)
    Ubuntu系统测评
    itchat 爬了爬自己的微信通讯录
    logistic回归模型
    多元线性回归模型
    可乐鸡翅制作难点
    梯度下降算法&线性回归算法
  • 原文地址:https://www.cnblogs.com/star520/p/9160161.html
Copyright © 2011-2022 走看看