一段时间没有使用python来写代码,就发现以前学习的很多语法都忘了。看来还是当初这方面的项目做的好不够多,没有系统性的运用和学习,导致了很多语法不能顺手拈来。在接下来的这个项目中,
一定要把遇到的一些python知识不熟悉的地方还有遗忘的重新梳理一下,对python要达到灵活运用的境界,不能单纯是能敲代码,要达到学,做,教的三者合一。就是在做中学,学中做,做中教,教中学的
境界。
全局变量的作用域:
一般在函数体外定义的变量成为全局变量,在函数内部定义的变量称为局部变量。全局变量所有作用域都可用,局部变量只能在本函数可用,变量的使用顺序是,局部变量 > 全局变量, 也就是说:优先使用局部变量
global关键字:
为了解决函数内使用全局变量的问题,python增加了global关键字, 利用它的特性, 可以指定变量的作用域。
global关键字的作用:声明变量var是全局的
实例一:函数内赋值不能改变全局变量值:
1
global
val
2
val = 10
3
4
def
test1():
5
global
val
6
val = 5
7
print
(
'
test1 global val:
'
,val)
8
9
def
test2():
10
val = 8
11
print
(
'
test2 global val:
'
,val)
12
class
Test():
13
def
__init__
(self):
14
#
global val
15
val = 5
16
#
zoo()
17
#
xy()
18
def
connect(self):
19
print
(
"
class in connect global val:
"
,val)
20
if
5 ==
val:
21
print
(
"
global val is:
"
,val)
22
23
if
__name__
==
"
__main__
"
:
24
Test().connect()
运行结果:
class in connect global val: 10
可以看出,函数内赋值并不能改变全局变量的值,所以需要global关键字
实例二:全局变量值改变必须要有global关键字:
沈德符
global
val
val
= 10
def
test1():
global
val
val
= 5
print
(
'
test1 global val:
'
,val)
def
test2():
val
= 8
print
(
'
test2 global val:
'
,val)
class
Test():
def
__init__
(self):
#
global val
val = 5
test1()
test2()
def
connect(self):
print
(
"
class in connect global val:
"
,val)
if
5 ==
val:
print
(
"
global val is:
"
,val)
if
__name__
==
"
__main__
"
:
Test().connect()
测试结果:
test1 global val: 5
test2 global val: 8
class in connect global val: 5
global val is: 5
可以看出,全局变量的值改变,必须要有global关键字。不然就被当成了局部变量。这点一定要记好。

