python变量与作用域

变量从作用域分类

作用范围从小到大为,小作用域的可以调用大作用域的内容。

  • 局部 Local
  • 闭包 Enclosing
  • 全局 Global
  • 内建 Build-in

局部变量

局部变量是定义在函数中的,因此其作用域是在函数内部。

def example():
    v=1  #局部变量
print(v)

由于局部变量作用域只在函数内部有效,因此程序会报错

Traceback (most recent call last):
  File "test.py", line 3, in <module>
    print(v)
NameError: name 'v' is not defined

全局变量

和局部变量相对,全局变量是定义在函数外的变量,因此具有更大的作用域。

v=1
def example():
    print(v)
example()

运行结果

1

注意事项
python与C有许多不同的地方
(1)例子1

v=1
def example():
    v=2
    print(v)
example()
print(v)

运行结果

2
1

当想要在函数中对全局变量进行赋值时,如上操作,python会生成新的局部变量,而不是修改全局变量的值,可以通过global标记在局部作用域中声明全局变量。

v=1
def example():
    global v
    v=2
    print(v)
example()
print(v)

运行结果

2
2

(1)例子2

def example():
    print(v)
    
v=1
example()

运行结果


                
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值