今天在看python那个函数的执行顺序,因为这段函数执行结果一直没看懂,
total = 0
def sum(arg1,arg2):
total = arg1 + arg2;
print(" 函数内是局部变量:", total )
return total
def totalprint( ):
print(' total 的值是 :', total )
return total
print ( ' 函数求和结果 :' sum(10, 20 ) )
totalprint( )
print( " 函数外是全局变量 : " , total )
执行结果是:
函数内是局部变量: 30
函数求和结果: 30
total的值是 0
函数外是全局变量 : 0
网上查函数执行顺序为:
执行从程序的第一行代码开始,函数定义并不会改变程序的执行流程,但函数代码块中的语句并
不是立即执行的,而是等函数被程序调用时才会执行
函数调用可以看作程序执行过程的一个迂回路径,遇到函数调用时并不会直接执行下一条语句,
而是跳转到函数体的第一行,继续执行函数代码块内的所有语句,再跳回原来的地方
所以,函数定义在前面但不会先进行执行,只有等该函数被使用时才会去执行该函数的代码内容,
从第一句开始,完成后才继续原调用函数的位置
再看另一个代码:
num = 100
def func():
num = 200
print( ' 函数体中的num的值为 : ',num )
func( )
print( ' 函数外num的值为 :',num )
执行结果为:
函数体中num的值为:200
函数体外num的值为: 100
可以看出:同时定义一个全局变量和函数内局部变量,都可以使用,但
函数内使用的是内部的num局部变量,函数外使用的就是全局变量