Python变量的作用域

来自CloudWiki
Cloud17讨论 | 贡献2020年3月20日 (五) 01:58的版本 全局变量
跳转至: 导航搜索

变量的作用域

根据程序中变量所在的位置和作用范围变量分为局部变量和全局变量,局部变量仅在函数内部,且作用域也在函数内部,全局变量的作用域跨越多个函数。

局部变量

def multiply(x, y = 10):
    z = x*y
    return z

s = multiply(99,2)
print(s)
print(z)

变量z是函数内部使用的变量,当函数调用后,变量z将不存在,所以会发生如下错误。

198
Traceback (most recent call last):
  File "D:/teaching/python/视频/Python语言程序设计/第五周视频课件/5-1.py", line 7, in <module>
    print(z)
NameError: name 'z' is not defined

全局变量

全局变量指在函数之外定义的变量,在程序执行全过程有效。

全部变量在函数内部使用时,需要 提前使用保留字global声明,语法形式如下:

 global <全局变量>


n=2
print(n)
def multiply(x, y = 10):
    global n
    n=1
    return x*y*n


s = multiply(99,2)
print(s)
print(n)

上例中,变量n是全局变量,在函数multiply() 中使用时需要在函数内部使用global声明,定义 后即可使用。

如果未使用保留字global声明,即使名称相同, 也不是全局变量。


n=2
print(n)
def multiply(x, y = 10):

    n=1
    return x*y*n


s = multiply(99,2)
print(s)
print(n) 

练习:需要添加什么代码 使程序运行?

school="山东商职学院"
depart="信息艺术学院"

def student(name,age):
    #需要在此处添加什么代码?
    global school
    global depart
    print(name,age,school,depart)

student("张三",21)