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