3
有沒有辦法限制某個函數被特定函數調用?有沒有辦法限制某個函數被某個函數調用?
def a():
private() # okay
def b():
private() # raises error
def private():
print "private"
有沒有辦法限制某個函數被特定函數調用?有沒有辦法限制某個函數被某個函數調用?
def a():
private() # okay
def b():
private() # raises error
def private():
print "private"
import inspect
def private():
cframe = inspect.currentframe()
func = inspect.getframeinfo(cframe.f_back).function
if func != 'a':
print 'not allowed from ', func
print "private"
如果你要做到這一點,你爲什麼不乾脆把'的直接private''了'裏面的代碼? – BrenBarn
不是沒有一些可怕的'檢查'體操。你爲什麼要這樣?爲什麼不只是調用你需要調用的函數,而不是你不需要的地方? –
在我的代碼中,函數是對象方法,它們在分開時更加有組織,我也可能想要def c()調用private()。 – Derek