2015-10-22 3 views
0

В python есть каждая переменная, определяемая как глобальная область? Может ли кто-нибудь объяснить область переменной для python следующим примером? Это для Python 2.7, но я бы не против питона 3 объяснениеVar scope Python

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 

EDIT Видел этот пост Python class scoping rules, но я до сих пор путают.

+0

Есть много информации в этой связи, которую вы разместили, поэтому, возможно, уточните, что еще вас путает? –

+0

'$ test' не объявляется глобальным в области' fun() ', к которому вы не можете получить доступ, вызовите' fun ($ test); ' –

ответ

0

Вы определили глобальную переменную test в Python, и глобальные переменные доступны в функциях. Чтобы добиться такого же эффекта в PHP, вам нужно будет написать:

<?php 

$test = [1,2,3]; 

var_dump($test); 


function fun() 
{ 
    global $test; // <---- add this 
    var_dump($test); 
} 

fun(); 

для достижения такого же эффекта. Вы можете найти дополнительную информацию о области переменных Python here.

+0

Это имеет большой смысл и благодарит вас за ссылку – c3cris

Смежные вопросы