Python教程

Python变量的作用域在编译过程中确定

本文主要是介绍Python变量的作用域在编译过程中确定,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

为了节省读友的时间,先上结论(对于过程和细节感兴趣的读友可以继续往下阅读,一探究竟):

【结论】

    1)Python并不是传统意义上的逐行解释型的脚本语言

    2)Python变量的作用域在编译过程就已经确定,而不是在一行行运行的过程中

 

【实例】

近几天遇到一个比较典型的错误,详解如下(图例中均为简化后的代码):

1)嵌套函数的内部函数引用了外部函数的局部变量,正确无误不报错

  

 

 2)之后,在内部函数的第8行错误地加了一行赋值语句,结果报错第5行有问题

  

3)如果Python是真正意义上的逐行运行,应该是运行到第8行给外部函数赋值时才会报错。说明Python并不是严格意义上的逐行解释型语言

4)翻阅资料后得知:因为编译过程中已经确定了变量a为内部函数的局部变量,于是执行到第5行的时候发现局部变量a还未赋值,于是报错“UnboundLocalError: local variable 'a' referenced before assignment”

 

这篇关于Python变量的作用域在编译过程中确定的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!