面试题答案
一键面试1. 访问全局变量方法
在Python中,使用global
关键字声明变量,这样在最内层函数中就可以访问和修改全局变量。在C++中,可以使用::
作用域解析运算符来访问全局变量。
2. 编译器查找变量顺序
- Python:先在局部作用域查找变量,如果找不到则在内层嵌套作用域查找,接着在外层嵌套作用域查找,最后在全局作用域查找,如果还是找不到则在内置作用域查找。
- C++:从最内层作用域开始查找变量,如果找到同名变量则使用该变量。如果找不到,则向外层作用域查找,直到找到或者到达全局作用域。如果全局作用域也没有找到,则报错。
3. 代码示例
- Python代码示例
global_variable = 10
def outer():
global_variable = 20
def inner():
global global_variable
global_variable = 30
return global_variable
return inner()
print(outer())
print(global_variable)
- C++代码示例
#include <iostream>
int global_variable = 10;
void outer() {
int global_variable = 20;
auto inner = []() {
::global_variable = 30;
return ::global_variable;
};
std::cout << inner() << std::endl;
}
int main() {
outer();
std::cout << global_variable << std::endl;
return 0;
}