独角兽企业重金招聘Python工程师标准>>>
函数中局部变量如果与外部变量重名,则用的是函数内部局部变量,用完就会被释放。我的理解函数是一个function定义的代码段,以上函数变量作用域可以如下理解:
类比于java代码理解,对于连接、编译完成的计算机可识别的机器码而言每一次函数调用都是在特定位置插入了一段function标识的代码段,文件引用也是在特定位置加入了代码段,也就是说最后的机器码是一个大大的代码段。在这个大大的代码段里来看,一个函数里面定义的局部变量和作用域更大的同名变量乃至全局变量,其名称其实可以理解成一个简称,其全称是位置、函数名等包含在内的标识符,而一次函数调用产生的那个代码段,调用结束后其内部局部变量与以后的代码就没有关系了,当然可以销毁释放内存。
不同作用域的同名变量可以理解为放在一个数组中,各个同名变量简称一样但是以位置 文件名 函数名等标识而成全称是不同的,找一个名为‘x’的变量可以理解成在这个数组里按范围由小到大的顺序找这个简称的东西。
第一篇原创,这么短。