2013-05-31 1 views
3

특정 기능에서 호출 할 수있는 함수를 제한하는 방법이 있습니까? 당신이 그렇게 할 거라면특정 함수에 의해 호출되는 함수를 제한하는 방법이 있습니까?

def a(): 
    private() # okay 

def b(): 
    private() # raises error 

def private(): 
    print "private" 
+4

, 왜 당신은'A' 내부에 직접 private''의 코드를 삽입하지? – BrenBarn

+1

끔찍한 체조 검사가 없습니다. 왜 이걸 원하니? 왜 전화를 걸 필요가있는 곳에서 전화를 걸면 안되지? –

+0

내 코드에서 함수는 객체 메서드이며 별도로있을 때 더 체계적이며 def c()가 private()을 호출 할 수도 있습니다. – Derek

답변

3
import inspect 
def private(): 
    cframe = inspect.currentframe() 
    func = inspect.getframeinfo(cframe.f_back).function 
    if func != 'a': 
     print 'not allowed from ', func 
    print "private" 
관련 문제