Java与Python中的局部变量作用域
当我试图访问块外的局部变量jimFound时,它是在第一个Java代码段中声明的,我得到了一个编译错误 错误:(10,13)java:找不到符号, 符号:变量jimFound, 地点:类别范围 这正是我所期望的Java与Python中的局部变量作用域,java,python,scope,Java,Python,Scope,当我试图访问块外的局部变量jimFound时,它是在第一个Java代码段中声明的,我得到了一个编译错误 错误:(10,13)java:找不到符号, 符号:变量jimFound, 地点:类别范围 这正是我所期望的 public class Scope { public void main(String args[]){ String name = "Jim"; if (name.equals("Jim")) { boolean ji
public class Scope {
public void main(String args[]){
String name = "Jim";
if (name.equals("Jim")) {
boolean jimFound = true;
}
if(jimFound) {
System.out.println("I found Jim!");
}
}
}
当我用Python尝试同样的方法时,我的程序设法找到了Jim
name = "Jim"
if name == "Jim":
jim_found = True
if jim_found:
print "I found Jim!"
控制台结果是“我找到吉姆了!”
为什么会这样 Python变量的作用域是最内部的函数或模块;控制块,如
if
和,而块不计数
Python变量的作用域是最内部的函数或模块;控制块,如if
和,而块不计数
在Java中,变量的作用域在其块内——简单地说是最接近的一对花括号(有些例外)。因此jimFound
仅存在于if
语句中。在Java中,变量的作用域在其块内-只需简单地说最近的一对括号(有些例外)。因此,jimFound
只存在于if
语句中。所以这只是一种非常不同的范围界定方法,但我发现它非常混乱。这样,在Python中经常会出现“UnboundLocalError:赋值前引用的局部变量'some_variable'”这样的情况,所以这只是一种非常不同的作用域方法,但我发现它非常混乱。通过这种方式,在Python中经常会出现“UnboundLocalError:local变量'some_variable'在赋值之前被引用”的情况