Python变量的作用域

版权声明:编写不易,转载请注明出处 https://blog.csdn.net/zha6476003/article/details/82861986

局部变量

局部变量是指在函数内部定义并使用的变量,他只在函数内部有效。即函数内部的名字只在函数运行时才会创建,在函数运行之前或者运行完毕之后,所有的名字就都不存在了。所以,如果在函数外部使用函数内部定义变量,就会出现NameError异常。

错误示例:

def demo():
    message = '唯有在被追赶的时候, 你才能真正地奔跑'
    print('输出局部变量message:' + message)


demo()
print(message)  # 这里已经不能访问到函数内部的变量了

执行结果:
	Traceback (most recent call last):
	输出局部变量message:唯有在被追赶的时候, 你才能真正地奔跑
	  File "D:/xuexi/python/Demo.py", line 8, in <module>
	    print(message)
	NameError: name 'message' is not defined

全局变量

与局部变量对应,全局变量为能够作用于函数内外的变量,全局变量主要有以下两种情况:

  1. 如果一个变量,在函数外定义,那么不仅在函数外可以访问到,在函数内也可以访问到。在函数体以外定义的变量是全局变量。

示例代码:

message = '唯有在被追赶的时候, 你才能真正地奔跑'


def demo():
    print('输出局部变量message:' + message)


demo()
print('函数外部访问message:' + message)

执行结果:
	输出局部变量message:唯有在被追赶的时候, 你才能真正地奔跑
	函数外部访问message:唯有在被追赶的时候, 你才能真正地奔跑
  1. 使用global关键字定义变量,该变量在全局都能访问了。
global variable
variable = 1
  • global variable:申明variable为全局变量
  • variable = 1:给variable赋值为1

示例代码:

def demo():
    global message  
    message = '唯有在被追赶的时候, 你才能真正地奔跑'
    print('输出局部变量message:' + message)


demo()
print('函数外部访问message:' + message)

执行结果:
	输出局部变量message:唯有在被追赶的时候, 你才能真正地奔跑
	函数外部访问message:唯有在被追赶的时候, 你才能真正地奔跑

猜你喜欢

转载自blog.csdn.net/zha6476003/article/details/82861986