1. 在某些情况下,Python中可以使用全局变量。2. 使用全局变量的原因是,全局变量可以在整个程序中被访问和修改,方便在不同的函数或模块中共享数据。3. 在编写较小的程序或简单的脚本时,使用全局变量可能更加方便。然而,在大型项目中,过多地使用全局变量可能导致代码的可读性和维护性下降,因此需要慎重使用全局变量,尽量使用局部变量来限制变量的作用范围。另外,全局变量的使用也需要注意避免命名冲突和意外修改的问题。

如果你想要为一个定义在函数外的变量赋值,那么你就得告诉Python这个变量名不是局部的,而是 全局 的。我们使用global语句完成这一功能。没有global语句,是不可能为定义在函数外的变量赋值的。
如果是引用数据类型的话,他们都是存在于栈内存中而指向他们各自所在的内存区域。
内存:栈 1.存放局部变量 2.不可以被多个线程共享 3.空间连续,速度快
堆 1.存放对象 2.可以被多个线程共享 3.空间不连续,速度慢,但是灵活
方法区 1.存放类的信息:代码、静态变量、字符串常量等等 2.可以被多个线程共享 3.空间不连续,速度慢,但是灵活
成员变量是定义在类体中的变量, 作用范围在整个 类体中有效, 使用前可以不赋值,会有默认初始化动作, 而局部变量定义在方法中,使用前必须初始化,否则编译失败,作用范围只在该方法中有效,出了这个方法就没人认识他了,
简单点来说,成员变量在类中定义,非静态,存放在堆空间中,局部变量在方法或代码块中定义,存放在栈内存中。
python栈是与每一个线程关联的,python在创建每一个线程的时候,会分配一定的栈空间给线程。它主要用来存储线程执行过程中的局部变量,方法的返回值,以及方法调用上下文。栈空间随着线程的终止而释放
python中堆是由所有的线程共享的一块内存区域,堆用来保存各种JAVA对象,比如数组,线程对象等
实例变量存放在堆内存 类变量存放在方法区