我需要獲取Python包中所有類的列表。 起初,我得到的所有文件名(它工作得很好,把它從計算器):獲取Python包中的所有類名
from os import listdir, getcwd
from os.path import isfile, join
mypath = os.getcwd()
onlyfiles = [ f for f in listdir(mypath) if isfile(join(mypath,f)) ]
然後我檢查所有文件,它不能正常工作:
for x in onlyfiles:
for name, obj in inspect.getmembers(x):
if inspect.isclass(obj):
print obj
輸出是:
<type 'str'>
....
<type 'str'>
但是,下面的代碼工作正常:
for name, obj in inspect.getmembers(example.py):
if inspect.isclass(obj):
print obj
你能幫我弄清楚錯誤是什麼嗎?
最後一塊代碼輸出是否正確? – 3Doubloons
它輸出example.ClassA。如果明確地命名爲這樣的模塊inspect.getmembers(example.py)它可以工作 – Konstantin
你確定在做一個'import example'後確實傳遞'example.py'而不是'example'? – 3Doubloons