Python 作用域, 局部与全局变量

 

全局与局部变量

  • 在子程序(函数)中定义的变量称为局部变量, 在程序的一开始定义的变量称为全局变量
  • 全局变量作用于整个程序, 局部变量作用域是定义该变量的子程序
  • 当全局变量与局部变量重名时:
    • 在定义局部变量的子程序内, 局部变量起作用,在其它地方全局变量起作用

 

 1 # 字符串, 整数不能在函数里面直接改全局变量;  类,集合,列表,字典是可以在函数中直接改全局变量的(元组不可以,因为元组是不可以修改的).
 2 school = 'oldboy'
 3 term = 3
 4 ages = ('18','20','30')
 5 names=['lucy','ada','Rain']
 6 
 7 def change():
 8     school = 'edu'
 9     term = 4
10     ages('18','80') #元组本来就是不可修改的
11     names[0] = 'alex'
12     print('inside func',names)
13 
14 change()
15 print(school)
16 print(term)
17 print(ages)
18 print(names)

 

全局变量如果是字符串 / 整数, 若想在函数中修改, 需要在函数中变量前面加上global,然后再修改.

 1 # 不允许的做法
 2 def change_name():
 3     global name  # global把name变成了一个全局变量, 如果有这个全局变量就把那个全局变量拿过来,没有就添加(但最好不要这么做.全局变量还是要在文件前面定义,方便调试)
 4     name = 'alex'
 5     print(name)
 6 
 7 
 8 change_name()
 9 print(name)
10 
11 print('\r\n')
12 
13 # 允许的做法
14 name = 'alex'
15 
16 
17 def change_name2():
18     global name  # 在函数中修改全局变量
19     name = 'lucy'
20     print(name)
21 
22 
23 change_name2()
24 print(name)

 

转载于:https://www.cnblogs.com/cheese320/p/8892701.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值