Python--局部变量与全局变量

局部变量仅在其作用域内生效,全局变量在任何地方都生效
 1 name = "dog" #全局变量
 2 sex = ""
 3 def change_name(name):
 4     print("befor change", name) # befor change dog
 5     name = "Tigger" # 局部变量,这个函数就是该变量的作用域
 6     global sex # 将sex升级为全局变量
 7     sex = ""
 8     age = 23 # 局部变量,这个函数就是该变量的作用域
 9     print("after change", name) # after change Tigger
10     return 0
11 
12 print(sex) #
13 change_name(name)
14 
15 #name为dog,因为函数里的name的作用域为函数内部
16 print(name)  # dog
17 
18 #报错:age is nor defined ,因为函数内部的age不是全局变量
19 print("age", age)
20 # 不报错,因为global将sex设置为了全局变量
21 print(sex) #
注意:尽量不要将局部变量升级为全局变量
除了字符串和整数,其他数据类型(列表,字典)可以在函数里改,改了后在全局生效
1 names = ["Tigger","Dog","Cat"]
2 def change():
3     names[0] = "大脑斧"
4     print(names)
5     return 0
6 change()
7 print(names)
posted @ 2020-05-24 13:41  NorthFeng  阅读(263)  评论(0编辑  收藏  举报