在python中,每个变量都被定义为全局范围吗?有人可以通过以下示例解释python的变量范围吗?这是针对python 2.7的,但我不会介意python 3的解释
的Python
test = [1,2,3]
print test
def fun():
print test
fun()
输出:
[1, 2, 3]
[1, 2, 3]
PHP
<?php
$test = [1,2,3];
var_dump($test);
function fun()
{
var_dump($test);
}
fun();
?>
输出:
array(3) {
[0]=>
int(1)
[1]=>
int(2)
[2]=>
int(3)
}
NULL
PHP Notice: Undefined variable: test in /home/coderpad/solution.php on line 10
编辑看过这篇文章Python class scoping rules,但我仍感到困惑。
答案 0 :(得分:0)
您在Python中定义了一个全局变量test
,并且可以在函数中访问全局变量。要在PHP中实现相同的效果,您必须编写:
<?php
$test = [1,2,3];
var_dump($test);
function fun()
{
global $test; // <---- add this
var_dump($test);
}
fun();
达到同样的效果。您可以找到有关Python变量范围here的更多信息。