2015-09-21 11 views
1

我想在Python中編寫一個小函數來打印Object的每個可調用方法。在REPL我想這樣做是爲了讓每一個列表的方法:dir()不會使用它的參數

[x for x in dir([]) if '__' not in x] 

這個作品在REPL正常,但當我寫相同的理解就像一個模塊中:

def methods(obj): 
    return [x for x in dir(obj) if '__' not in x] 

我得到一個錯誤: 「TypeError:dir()不帶任何參數(給出1)。」 問題在哪裏?爲什麼在REPL中寫入而不是在模塊中完全正確?

+0

你有一個'目錄()'該模塊中的功能? –

+1

@AnandSKumar:哇,我很蠢。謝謝。 – Markus

回答

3

您可能會覆蓋您的原生dir函數。

嘗試help(dir)看看它來自哪裏。

還注意到inspect不正是你問:

import inspect 
inspect.getmembers(obj, predicate=inspect.ismethod) 
相關問題