2012-11-06 4 views
0

나는 큰 배열을 생성하기위한 코드를 포함하고있는 파이썬 모듈을 가지고 있으며 이것을하기위한 여러 함수를 포함하고있다. 그것은 "참조 된 할당하기 전에"예외를 throw로파이썬에서 변수의 범위를 다루는 방법

var1 = 0 
var2 = 0 
var3 = 0 
var4 = 0 
var5 = 0 
var6 = 0 
def main(): 
    foo() 
    moo(var1,var2) 
    noo(var6) 
def foo(): 
    Math using vars 
def moo(): 
    More math 
def noo(): 
    More math 

그러나, 나는 먼저이 각각의 기능 안에 그들을 무시하지 않고 바르 1-6을 사용할 수 없습니다 : 이것은 내가 지금 그것을 가지고하는 방법입니다. 이 작업을 수행하는 가장 좋은 방법은 전 세계를 사용하는 것일 수 있지만 심하게 눈살을 찌푸리게하는 것 같습니다. 글로벌이 권장되지 않는 이유는 무엇입니까? 여기에서 사용하는 것이 받아 들여질 수 있습니까? 이것에 대해 어떻게해야합니까?

답변

0

그 매개 변수로 함수에 변수를 전달하는 것입니다 :

def main(var1, var2, var3, var4, var5, var6): 
    foo(var1, var2, var3) 
    moo(var2,var3) 
    noo(var5) 
    ... 

def foo(var1, var2, var3): 
    Math using vars 
def moo(var2, var3): 
    More math 
def noo(var5): 
    More math 

그리고는 모두 6 개 매개 변수와 함께 주요 호출합니다.

관련 문제