関数Pythonで与えられた関数のネストされた(ローカル)関数を調べる
def f():
x, y = 1, 2
def get():
print 'get'
def post():
print 'post'
には、ローカルのget()関数とpost()関数に私がそれらを呼び出すことができる方法でアクセスする方法がありますか?私は上で定義された関数f()のように動作する関数を探しています。
>>> get, post = get_local_functions(f)
>>> get()
'get'
import inspect
for c in f.func_code.co_consts:
if inspect.iscode(c):
print c.co_name, c
のようなローカル関数のコードオブジェクトにアクセスできます
get <code object get at 0x26e78 ...>
post <code object post at 0x269f8 ...>
実際の呼び出し可能な関数オブジェクトを取得する方法を理解できません。それも可能ですか?
助けてくれてありがとう、
ウィル。
私は私の実際のユースケースのために、私はそうのようなネストされた/ローカル関数を呼び出すことができるようにする必要があることに注意する必要があります。 GET(要求、* argsを、** kwargsからの) –