重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
在python程序中,变量可以根据变量所在位置和作用范围分为局部变量和全局变量两种,局部变量仅在函数内部存在,作用域也只有函数内部。全局变量作用域为多个函数均可使用。
在夏河等地区,都构建了全面的区域性战略布局,加强发展的系统性、市场前瞻性、产品创新能力,以专注、极致的服务理念,为客户提供成都网站设计、成都网站制作 网站设计制作按需定制,公司网站建设,企业网站建设,品牌网站建设,成都营销网站建设,外贸营销网站建设,夏河网站建设费用合理。
一、局部变量
局部变量是在某个函数中声明的,只能在该函数中调用它,如果试图在超出范围的地方调用,则会出现错误。(在函数中使用后,局部变量就会被释放,所以无法在其他范围内被调用)
二、全局变量
全局变量是指在整个.py文件中定义的变量,在程序执行的全过程均有效。全局变量在函数内部使用时,需要使用保留字global进行声明。
(在声明全局变量时,变量名不可改变!)
全局变量,是一个相对的概念,对于整个程序而言,有可以在整个程序的任何代码块中都能被访问的变量,被称作全局变量。也有在类中能够被该类的任何代码块都能访问到的变量,也被称作全局变量。所以这里是一个相对的概念。代码定义的fly变量以及构造方法中的long变量都是全局变量,因为在long之前加了一个self的前缀,所有在整个类中,该long变量也是全局变量,至少在该类中的任何地方都可以访问到该变量。全局变量被当做类的一个属性来存储,所以可以说直接通过.的访问方式直接访问,访问如下:
class G():
fly = False #类中的全局变量
def __init__(self):
selg._age = 1 #加一个下划线,是一种不成文的规定,意思是该变量是私有变量
self.long = 2 #普通变量
self.__width = 3 #有两个下划线,是一种“真”私有变量
def run(self):
r = 4 #局部变量
print("I am running!.")
变量的引用
变量和数据都是保存在内存中的
变量和数据是分开存储的
数据保存在内存中某个位置,通过地址来标记
变量保存的是数据的地址,通过地址可以找到数据在内存空间的位置
把变量保存数据地址的过程称为引用
变量的重新赋值修改的是变量中引用数据的内存地址
变量之间的赋值实际是引用的传递
函数参数的传递,本质也是引用的传递
函数的返回值本身也是引用的传递
可变和不可变类型
不可变类型,内存中的数据不允许被修改:数字类型(int,bool,float,complex,long(2,x)、字符串、元组(tuple)
可变类型,内存中的数据可以被修改:列表list、字典dict
无论是可变还是不可变数据类型,通过赋值语句,都会改变变量的引用
Hash函数只能接收不可变数据类型,字典的键也只能是不可变数据类型,字典的value值可以是任意数据类型
局部变量
1.在函数内部定义的变量就是局部变量(作用范围只能是当前函数内部)
2.在函数外部无法直接访问局部变量
3.不同的函数中可以定义同名的局部变量
4.局部变量的生命周期:从定义变量时开始,到函数运行结束
全局变量
1.在所有函数外边定义的变量就是全局变量
2.让所有函数都能访问到,可以作为函数通信的桥梁
3.一般情况下,为了和普通变量的区别,需要加上g_或gl_前缀
4.全局变量一般放在所有函数的最上面
5.在函数内部修改全局变量,必须要加上global关键字,如果不加global只是定义了一个同名的局部变量
函数的多个返回值
在Python可以在函数中直接使用定义的全局变量,但是 如果需要修改这个全局变量 ,那么就要在函数前面 global a 表明在函数中的 a 是 全局变量 a 而不是重新定义的局部变量 a 。