Python——作用域

一、作用域:可以被影响的范围

全局变量:在最外层声明的变量

局部变量:在某些代码块声明的变量

xxx=100 #最外层的变量,全局变量
def p():
    ddd=300 #在函数体内部,局部变量
    #global xxx
    xxx=200 #与全部变量同名的局部变量
    print(xxx)
p()    
#说明:外面一层的变量能够被代码块内部一层的变量调用

yyy=200
def p2():
    print(yyy)
    #yyy=100 #报错

局部变量的注意事项:

1、在函数体内部声明的变量不能在函数体外部去调用,会直接报错

2、在函数体内部同名的全局变量即使重新赋值了,也不会影响函数体外部的那个同名全局变量,如果真的想要改变外部同名的全局变量,那么我们必须要在函数内部使用global关键字声明

3、在函数体内部如果先调用外部的全局变量后是不能再次修改的,因为在函数体内部写了同名的变量后会使得编译器无法识别局部变量还是全局变量,使得程序异常

二、命名变量

如果在函数内部和外部操作同名变量,Python 会将它们视为两个单独的变量,一个在全局范围内可用(在函数外部),而一个在局部范围内可用(在函数内部):

x = 100
def myfunc():
  x = 200
  print(x)
myfunc()
print(x)

三、global关键字

使用global关键字可以将局部变量声明为全局变量

number=20    #定义全局变量
def test():
    global number #使用global声明变量number为全局变量
    number+=1
    print(number)
test()
print(number)    

四、nonlocal关键字

使用nonlocal关键字可以在局部作用域中修改嵌套作用域中定义的变量

def test():
    number=23
    def test_in():
        nonlocal number
        number=20
     test_in()
     print(number)
test()        

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值