2016-09-01 3 views
0

정의 전에 함수를 호출하는 방법이 있습니까?파이썬에서 정의하기 전에 함수를 호출하십시오.

def Insert(value): 
    """place value at an available leaf, then bubble up from there""" 
    heap.append(value) 
    BubbleUp(len(heap) - 1) 

def BubbleUp(position): 
    print 'something' 

이 코드는 기능도 호출되기 때문에 코드는 여기에, 모든 오류의 이상 아무것도 표시되지 않습니다 "해결되지 않은 참조 버블 업 (bubbleup)"

+1

아니요, 그렇게 할 수 없습니다. 'BubbleUp'이 정의되기 전에 호출되지 않기 때문에 코드는 괜찮습니다. –

+2

이 코드는'Insert '가 선언되었을 때'BubbleUp'이 호출되지 않았지만 실제로 _called_되었을 때 작동합니다. –

+1

이 코드에서 두 호출 중 하나를 호출하지 않습니다. 두 정의가 모두 끝난 후에'Insert '를 호출하면 괜찮습니다. –

답변

3

보여줍니다. 중요한 것은 Insert에 대한 전화의 위치이며, BubbleUp (그 이유는 무엇입니까?) 이후에 오는 한 문제는 없습니다. 함수 정의은 함수 본문을 실행하지 않으므로 필요한 모든 함수가 정의 될 때까지 함수를 호출하지 않는 한 원하는 순서대로 함수를 정의 할 수 있습니다.

관련 문제