python 全局与局部变量

本文详细解释了局部变量和全局变量的区别,通过具体实例展示了如何在Python中使用这两种类型的变量,包括局部变量的作用范围限制、如何修改全局变量及使用global关键字的注意事项。

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

转载于:https://www.cnblogs.com/zoe0920/p/9404829.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值