全局变量和局部变量 | 学习笔记

简介: 快速学习 全局变量和局部变量

开发者学堂课程【Python入门 2020年版全局变量和局部变量】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/639/detail/10330


全局变量和局部变量


全局变量和局部变量

1. a=100#这个变量是全局变量,在整个 py 文件里都可以访问,无论在哪里写,这个文件都可以访问。

Def test():

X=’hello’

#这个变量是在函数内部定义的变量,它是局部变量,只能在函数内部使用,如果在外部写一个就会报错,出了函数以后就不能使用。

Print’X={}’.formatx))

Printa在函数内部就可以使用,

Print函数外部a={}’.format(a) 该变量是一个全局变量,在函数内部跟外部都能使用的一个变量。

Printx这个函数会报错,#x只能在函数内部使用

Print函数内部a={}’.format(a)

运行结果:

函数外部 a=100 函数外部可以使用,为什么函数内部没有打印,因为没有调用,调用一下,

Test()

Printx

Print(函数外部a={}’.format(a)

运行结果

函数外部 a=100

函数内部 a=100

这个比较简单,是最最基本的一个情况,

2. 假如现在这样写 a=10,会怎么样,在函数内部生成的变量是一个局部变量,a=100在函数外部生成的变量是一个全局变量,a=10是一个什么变量,有两个选择#

1. 在函数内部又定义了一个新的局部变量

2.修改了外部的全局变量。

Def test():

X=’hello’

Print’X={}’.formatx))

a=10

Print函数内部a={}’.format(a)

Test()

Printx

Print(函数外部a={}’.format(a)

运行结果:

函数内部 a=10

函数外部 a=100

所以是1.在函数内部又定义了一个新的局部变量。

#如果局部变量的名和全局变量同名,会在函数内部又定义一个新的局部变量,而不是修改全局变量

3.global 关键字的使用

word=’你好

#函数内部如果想要修改全局变量?

Global word

Word=’OK’

Test()

Print(‘函数外部word={}’.formatword)

运行结果:

函数外部 word=ok

#使用 global 对变量进行声明,可以通过函数修改全局变量的值。

A 没有写 global,就没有写外面的,是一个新的局部变量,global 之后它就会修改外部的全局变量,只要调用了 test函数,test 函数对 word 进行修改,之后再在后面写 word,结果都是 ok

4.#内置函数

globals()可以查看全局变量 , locals()可以查看局部变量。

print( ' locals = {},globals = {'.format(locals() globals()))

不调用不修改 word,调用了以后查看 word,永远都是 ok,

运行结果:

locals = ("x ' : "'hello' , ' a ': 10)},globals = {'_name_ ': '_main_', '_doc_ ': None, '_package_ ': None,'}

注意:

会打印函数里的局部变量,locals 中没有 word,对整个变量来说,test 也是一个变量,这个函数对应的值是一个函数,同名中会出错,所以起名字时要注意,写的时候将光标放到那里,shadows name’a’from outer scope,表示在外部的环境里有一个 a 变量,局部变量的名字跟全局变量的名字起的相同了。

5.#python 里,只有函数可以分割作用域,全局变量全局范围里都可以使用,局部变量只能在这个范围内使用。

例:

If 3>2:

m =’hi’

printm

m 是一个全局变量,还是局部变量,是一个全局变量,在 if 语句中写的全局变量,在外面依然可以访问,

运行结果:

Hi   (是一个全局变量)

Printglobal是())

运行结果:’m’,’hi

虽然是全局变量,但这个写法不太正确,打印 m 就会报错,因为他认为你没有定义。

相关文章
|
18天前
|
Java
局部变量
局部变量和局部变量和成员变量 1.定义的位置不一样【重点】 局部变量:在方法的内部 成员变量:在方法的外部,直接写在类当中 2.作用范围不一样【重点】 局部变量:只有方法当中才可以使用,出了方法就不能再用 成员变量:整个类全都可以通用。 3.默认值不一样【重点】 局部变量:没有默认值,如果要想使用,必须手动进行赋值 成员变量:如果没有赋值,会有默认值,规则和数组一样 4.内存的位置不一样(了解) 局部变量:位于栈内存 成员变量:位于堆内存 5生命周期不一样(了解) 局部变量:随着方法进栈而诞生,随着方法出栈而消失 成员变量:随着对象创建而诞生,随着对象被垃圾回收而消失 当方法的局部变量和类的成
15 1
|
2天前
局部变量:
3.默认值不一样【重点】 局部变量:没有默认值,如果要想使用,必须手动进行赋值 成员变量:如果没有赋值,会有默认值,规则和数组一样 4.内存的位置不一样(了解) 局部变量:位于栈内存 成员变量:位于堆内存 5生命周期不一样(了解)
8 0
|
1月前
|
存储 C语言
全局变量
全局变量
11 0
|
2月前
初始化局部变量和全局变量
初始化局部变量和全局变量
19 0
|
5月前
|
Java
Thymelead th:with 局部变量
Thymelead th:with 局部变量
|
7月前
|
C++
39.【C/C++ 全局变量和局部变量 (详解)】
39.【C/C++ 全局变量和局部变量 (详解)】
56 0
|
10月前
|
存储
全局变量和局部变量
全局变量和局部变量
37 0
|
PHP 开发者
局部变量|学习笔记
快速学习局部变量
73 0
局部变量|学习笔记
|
PHP 开发者
全局变量|学习笔记
快速学习全局变量
125 0
全局变量|学习笔记