2014-08-28 3 views
0

저는 초보자이며 파이썬을 배우면서 어려운 길을 배웁니다.파이썬의 코드에서 오류의 원인을 찾을 수 없습니다.

불행히도 계속 오류가 발생하고 이유를 알 수 없습니다.

여기에 코드입니다 :

def new(num_buckets=256): # Creates list aMap and fills it with 256 empty lists. 
    """ Initializes a Map with the given number of buckets.""" 
    aMap = [] 
    for i in range(0, num_buckets): 
     aMap.append([]) 
    return aMap 

new() 
print aMap 

이상하게도 내가 AMAP 난 그냥 목록 빈 내부 버킷의 무리로 만드는 기능을 실행해도 정의되지 않고 있다는 메시지가 점점 계속.

도움 주셔서 감사합니다.

+2

어 ..하지만'aMap' 만 정의하기 때문에 당신의'new' 함수 내에서 범위가되지 않는 이유는 무엇입니까? 'print (new())'를하고 싶습니까? 또는'temp = new() print (temp)'? – EdChum

+2

나는'return'이 무엇을하는지, 그리고 변수의 범위가 어떻게되는지 당신이 이해하지 못한다고 생각합니다. – Blorgbeard

+0

반환 변수를 처리해야합니다. result = new()를 수행 한 다음 결과를 인쇄 할 수 있습니다. – TheOneWhoPrograms

답변

7

new()aMap을 반환하지만 어디에도 저장하지 마십시오. 당신이 원하는 : 당신이 명시 적으로 (A global 또는 nonlocal1 문을 통해) 달리 명시하지 않는 한

aMap = new() 

일반적으로, 말하기, 이름 만이 정의 된 범위에 존재한다. 이 경우 이름 aMap은 기능 new 안에 만 존재합니다. 그 이름이 함수 밖에서 존재하게하려면, 뭔가를 할당해야합니다.

1 Python3.x 만

관련 문제