1.局部变量:在函数中定义的变量一般只能在该函数内部使用,这些只能在程序的特定部分使用
全局变量:在一个文件顶部定义的变量可以供该文件中任意函数调用2.
name='hello'def func(): name='HELLO' print('change:',name)func()print(name) 输出: change:HELLO hello 在函数内部定义的HELLO是局部变量,当我们调用函数func的时候,函数内部打印的是局部变量, 函数外部打印的是全局变量hello,能读取全局变量,无法对全局变量重新赋值。 3.如果想把局部变量强制生成全局变量,需要用到global,如果函数没有被调用的话global不会起作用 Num = 666 def func(): global Num #此时的Num还是全局变量,因为如果全局变量已经有这个Num变量那就是指的它 如果全局没这个Num那就新定义一个全局变量。 Num = 888 #把全局变量的值改为了888。 print(Num ) func() print(Num)
输出: 888 888 4. 嵌套变量 name = 'hello' #先执行这一步
def s1(): name = "a" #调用之后,第三步 print(name) #第四步(输出name的内容a) def s2(): name = "b" #执行第六步 print(name) #第七步(输出内容b) def s3(): name = 'c' #第十步 print(name) #第十一步(输出内容c) print(name) #第八步执行(输出内容b,还没有调用s3()) s3() #第九步调用s3() s2() #第五步调用s2() print(name) #第十二步(输出第s1里的内容a)s1() #第二步 输出: a b b c a