# Author:barry allen
# -*-coding:utf-8 -*-
sex='b' #全局变量
def view(name):
#4.在函数内修改全局变量sex
global sex #4.声明为global方可修改
sex='a'
print(sex)
#--------------------------------------------------------
#sex='a' #1.此时在函数输出语句中输出sex,该sex为a而不是b,函数外调用sex时则是调用b
print("before change",name)
name="LIN" #2.此函数为name变量的作用域
#age=12 #3.此时age在函数外面无法调用,因为age的作用域只在该函数中
print("after change",name)
#--------------------------------------------------------
name='lin'
view(name)
print(sex)
#----------------------------------------
name=['a','1','2']
def func():
print(name)
name[0]='b' #函数对全局变量的列表name作修改,会改变全局变量的值
print(name)
func()
print(name) #此时name已经经过函数的修改而改变了
#**----------------------------
#global 意为可以修改全局变量的值
#除了整数,字符串等单个变量,集合、字典、列表等都可以直接在函数内修改相应的全局变量
#当局部变量与全局变量同名时,局部变量在该子程序有效,且在该子程序中调用的是局部变量的值。全局变量在除该子程序外的全局有效