我想知道这个python程序的工作过程

我想知道这个python程序的工作过程,python,Python,这里我用参数a,b调用sm,但我没有给出任何参数in-out 在我看来,我认为会出现一个错误。但是它 很好 def out(): c=sm(a,b) print(c) a=6 b=8 def sm(a,b): return a + b out() 按照您当前的代码方式,它应该可以正常工作,不会出现任何错误。这里的变量a=6和b=8是全局变量,所以如果不给它任何参数,它将从全局框架中获取a和b的值。请参见逐步框架和对象 执行上下文 基本上,在这个程序中有两个函

这里我用参数a,b调用sm,但我没有给出任何参数in-out

在我看来,我认为会出现一个错误。但是它 很好

def out():
    c=sm(a,b)  
    print(c)

a=6 
b=8

def sm(a,b):
    return a + b

out()

按照您当前的代码方式,它应该可以正常工作,不会出现任何错误。这里的变量a=6和b=8是全局变量,所以如果不给它任何参数,它将从全局框架中获取a和b的值。请参见逐步框架和对象

执行上下文


基本上,在这个程序中有两个函数out和sm, 第一个函数sm将两个参数a、b作为输入,并返回它们的和作为输出 而其他函数只调用输入为a、b的sm函数 它是全局定义的,并将它们的和存储在c变量中,然后打印c变量,输出8。这应该可以正常工作。 最初,定义了一个名为out的函数。 该过程从全局初始化a=6和b=8开始。 然后你定义了sma,b函数,什么都没发生 然后调用了前面定义的函数。所以我们进入了函数out,它没有参数。
在它里面,您调用了前面定义的函数sma,b。所以c得到sm6,8返回的值,即14。然后打印c。因此,14被打印。

您可以访问Python函数中函数外部定义的变量。几分钟前你没问这个吗?请把你原来的问题,而不是张贴它坏了。
def out():
    c=sm(a,b)  # so available here
    print(c)

a=6 # global variable
b=8 # global variable

def sm(a,b):
    return a + b 

out()