美文网首页
Day031|变量名字一样,为何是独立的不同的变量?

Day031|变量名字一样,为何是独立的不同的变量?

作者: 龙渊的宝藏 | 来源:发表于2021-03-26 22:33 被阅读0次

今天是Andy学Python的第31 天哦! 

大家好,我是Andy。

之前写过一篇笔记,《Day025|全局变量与局部变量详解》,对全局变量与局部变量进行了简要归纳对比,今天在其他书中又发现了新的未掌握的知识点。下面跟大家一起学习下。

01.

局部作用域不能使用其他局部作用域内的变量

观察下图左右两个程序,预测各自的输出结果。

答案如下: 

 答案解析:

虽然eggs在spam()与bacon()起的名字一样,但是这是两个不同的变量。

重点是,一个函数的局部变量与其他函数的局部变量完全不一样,虽然起的名字可能一样、长得可能一模一样

换句话:局部变量的内存是动态分配与释放:随函数的调用而生成,函数调用结束即释放。

02.

名称相同的局部变量和全局变量

def master1():

    master = "局部张三"

    print(master) 

def master2():

    master = "局部李四"

    print(master)

    master1() 

    print(master) 

master = "全局王五"

master2()

print(master) 

先不要看答案,猜猜输出结果。

答案解析:

# 虽然都是输出master,但是结果不一样。

# 第2行,名为master的变量,存在于master1()被调用时的局部范围。

# 第6行,名为master的变量,存在于master2()被调用时的局部作用范围。

# 第11行,名为master的变量,存在于全局范围。

# 这3个独立的变量都有相同的名字,但不是一回事。

结论:要想生活简单,就要避免局部变量与全局变量或其他局部变量同名。

不然,程序一旦长了,查错就变得非常麻烦。


51Day Day up!

向上向善,日进一步!

每天学习,努力成长!

定个小目标,开启成长的旅程,遇见更好的自己。

这是我们和自己的约定,许诺自己不负韶华。

路虽远,行则将至;事虽难,做则必成。

成长的最好时机,就是当下。

相关文章

  • Day031|变量名字一样,为何是独立的不同的变量?

    今天是Andy学Python的第31天哦! 大家好,我是Andy。 之前写过一篇笔记,《Day025|全局变量与局...

  • PHP笔记

    函数中变量 局部动态变量 局部静态变量 全局变量 引用变量(值传递,引用传递) 不同的名字访问同一个变量内容.使用...

  • Java内存泄露学习 ThreadLocal真的会内存泄露吗

    概述 ThreadLocal提供了线程内存储变量的能力,这些变量不同之处在于每一个线程读取的变量是对应的互相独立的...

  • Java变量类型

    Java变量类型 类变量:独立于方法之外的变量,用 static 修饰。 实例变量:独立于方法之外的变量,不过没有...

  • 变量与参数

    变量的名字保存变量的值引用变量的值就叫做变量替换 如果 variable 是一个变量的名字,那么 $variabl...

  • per-course变量

    变量就是储存信息的容器。 为了区分不同的变量就要给每一个变量都取一个名字,即变量名。 变量名必须是合法的标识符,可...

  • java中的全局变量、局部变量与static

    java中的变量类型有: 类变量:独立于方法之外的变量,用 static 修饰。 实例变量:独立于方法之外的变量,...

  • Java中的变量

    java中的变量类型有: 类变量:独立于方法之外的变量,用 static 修饰。实例变量:独立于方法之外的变量,不...

  • 关于变量的总结

    类变量:独立于方法之外的变量,用 static 修饰。实例变量:独立于方法之外的变量,不过没有 static 修饰...

  • 第六章 结构

    结构是多个变量的集合,变量可能为不同的类型,为了方便处理而将变量组织在一个名字之下。结构可以拷贝、赋值、传递给函数...

网友评论

      本文标题:Day031|变量名字一样,为何是独立的不同的变量?

      本文链接:https://www.haomeiwen.com/subject/cydkhltx.html