Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/277.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 有没有办法限制特定函数调用的函数?_Python - Fatal编程技术网

Python 有没有办法限制特定函数调用的函数?

Python 有没有办法限制特定函数调用的函数?,python,Python,是否有方法限制特定函数调用的函数 如果你要这么做,为什么不直接把private的代码放在a里面呢?如果没有一些可怕的检查体操的话。你为什么要这个?为什么不在需要调用的地方调用函数,而不是在不需要调用的地方调用函数呢?在我的代码中,函数是对象方法,当它们分开时会更有组织性,我还可能希望def c()调用private()。我想你可以使用private()中的这个函数来过滤掉不允许调用它的函数。编辑:看来亨利赢了我。 def a(): private() # okay def b():

是否有方法限制特定函数调用的函数


如果你要这么做,为什么不直接把
private
的代码放在
a
里面呢?如果没有一些可怕的
检查
体操的话。你为什么要这个?为什么不在需要调用的地方调用函数,而不是在不需要调用的地方调用函数呢?在我的代码中,函数是对象方法,当它们分开时会更有组织性,我还可能希望def c()调用private()。我想你可以使用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"