2014-03-13 101 views
0

如何使用檢查來檢索子功能列表?如何使用檢查來檢索子函數列表(python)?

def f(x, y): 

    def g(a): 
     return a + 1 

    def h(z): 
     return b + 1 

subs = inspect.getsubfunctions(f) 
#Should return [ g, h ] 
+0

愚蠢的有趣的方法,但它很容易出現誤報。 Lambdas,genexps和類都在函數的'func_code.co_consts'中顯示爲代碼對象。它將作爲一種啓發式的方式給出體面的結果,特別是對於提交者的使用案例。 – user2357112

回答

2

你不能。直到函數被調用,「子函數」纔會存在。甚至有一次,它被稱爲中,gh定義創建每個f調用新的,大多是完全相同的功能,所以你不能得到g功能或h功能。