07 python中全局变量和局部变量

1 全局变量

  • 自己定义:写在函数外的变量,一般为全局变量
  • 标识:全局变量一般用大写来定义
  • 全局变量可用global关键字来声明

2 局部变量

  • 自己定义:写在函数内的变量为局部变量
  • 标识:局部变量一般用正常的标识符,即字母、数字、_组成,字符一般小写
  • 局部变量可用nonlocal关键字来声明,用于指定上一级变量
name = 'lucy'

def chang_name():
    name = 'lili'
    def test():
        nonlocal name
        name = 'bibi'
    test()
    print(name)

print(name)     #lucy
chang_name()     #bibi
print(name)   #lucy

3 使用示例

示例1:

NAME = 'lucy'

def chang_name():
    global NAME  #声明为全局变量
    print(NAME)   # lucy
    
    NAME = 'lili'
    print(NAME)   #lili

示例2:

NAME = 'lucy'    //全局变量

def chang_name():
    NAME = 'mimi'     //局部变量
    global NAME  #声明为全局变量
    print(NAME)   

chang_name()      //报错 SyntaxWarning: name 'NAME' is assigned to before global declaration 函数中调用时不知道调用的是哪个NAME

示例3:

NAME = ['lucy', 'lili']

def chang_name():
    global NAME     #声明为全局变量
    NAME = ['mimi']   #修改
    NAME.append('gg')   #修改
    print(NAME)

chang_name()     #输出为:['mimi', 'gg']

你可能感兴趣的:(07 python中全局变量和局部变量)