Var范围Python

时间:2015-10-22 19:09:06

标签: php python

在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,但我仍感到困惑。

1 个答案:

答案 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的更多信息。