计算机语言的作用域,也就是定义的变量能发挥作用的区域,类似于数学函数中的自变量、因变量的取值范围(值域)。
1 其他语言一般的计算机语言,如C、C++ 等都是以代码块(括号)为作用域。
示例:
public void Func(){
if(1==1){
string name = 'Java';
}
console.writeline(name);
}
Func()
// 报错
分析:
代码在 if(...){...} 条件语句内,定义了一个局部变量 string name = 'Java',当调用此函数时,电脑会报错。这是因为,一般的计算机语言以代码块为作用域,而 if(...){...} 条件语句就是一个完整的代码块,其内定义的局部变量并不能在外面被使用。
修改后:
public void Func(){
if(1==1){
string name = 'Java';
console.writeline(name);
}
}
Func()
// 正常运行
2 Python
Python 以函数为作用域。
函数的作用域在函数未被调用之前,已经创建。
函数的作用域存在作用域链,且也是在被调用之前创建。
局部变量提前声明。
示例:
def func():
if 1==1:
name = "java"
print(name)
func()
def func():
if 1==1:
name = "java"
print(name)
func()
# 以上两种方法正常运行
def func():
if 1==1:
name = "java"
func()
print(name)
# 报错
分析:
Python 以函数为作用域,上面的代码在函数中定义了一个局部变量 name = "java",那么这个变量就不能在函数体以外的地方被使用。
修改后:
def func():
if 1==1:
name = "java"
print(name)
func()
name = "python"
print(name)
# 输出结果
java
python



