# -*- coding:utf-8 -*-] #变量的作用域就是指一个变量的作用的范围,全局变量作用域,局部变量作用域 #在函数代码块外部声明的变量,被成为全局变量 #从声明的位置开始往下,一直到文件的末尾都可以使用 #局部变量:一般在函数内部或代码块内部声明使用,超出范围不可用 # -*- coding:utf-8 -*- a=20 if 1==1: a=10 print(a) c=20 def eat(): global c c=10 eat() print(c) #如果全局变量的名称和局部变量的名称相同,想在局部的变量起全局的作用,用global+变量名即可 #不使用global,全局变量可以引用,不能修改,即使用相同的变量名,也只是在局部范围起作用,可以在局部引用全局变量# -*- coding: utf-8 -*- # 变量的作用域:是指一个变量所产生作用的范围,在哪一个范围内能够被解释器识别。 # NameError: name 'name' is not defined # print name # 变量的作用域:全局变量和局部变量 # 一般声明在函数外部的变量,被称为全局变量,作用范围是整个.py文件内,都可以使用,都能被解释器识别到。 # 一般声明在函数内部内部的变量,可以理解为一个局部变量,该变量只能在函数内部使用,超出范围,变量就不能再使用。 # my_list = [1,2,3,4] # phone_info = [{},{}] def sum(a,b): # 形参a,b也是局部变量,只能在函数内部使用。 # c: 就是一个局部变量 c = a + b print c if c == 30: c = c + 100 print c sum(10,20) # print a,b # 全局变量名和局部变量名相同 name = '张三' # 默认情况下,如果全局变量名和局部变量名相同都是name,在函数内部是无法识别到函数外部的全局变量的,而会在函数内部声明一个新的局部变量叫name。 def show(): # local(局部的) variable(变量) 'name' referenced(引用) before(在...之前) assignment(声明):因为变量在进行引用时,会采取就近原则,看最近声明的变量在哪。而最近声明的变量是name='李四',所以出现了先引用,后声明的错误。 # print '-----',name # name = '李四' # print '===',name # 如果在函数内部,想修改外部的全局变量(可以理解为重新赋一个值),需要使用global # global的作用:声明一个变量是已经声明好的全局变量,直接使用即可,可以避免声明一个和全局变量重名的局部变量。 global name print '-----',name name = '王五' print '===',name show() print name
变量
最新推荐文章于 2023-12-29 16:50:45 发布