由於多種原因,我發現自己處於導入許多python模塊的位置,並且希望遍歷模塊中的每個類。在Python中循環導入的類
from capacity_hdd_parser import CapacityHDDParser
from capacity_ssd_parser import CapacitySSDParser
from checksum_parser import ChecksumParser
.
.
.
從基類中的每個解析器遺產和有我想每個解析器調用一個方法
parsers = [CapacityHDDParser, CapacitySSDParser, ChecksumParser]
for parser in parsers:
parser_instance = parser()
data_returned = parser_instance.parse(logset_path)
# Do a bunch of post processing here.
我的問題是,我有很多解析器經歷,我覺得有有是一種動態遍歷導入類的方法。不得不手寫每一個這些不僅是屁股上的痛苦,它使得我的代碼的意圖在噪聲中難以看清。
hack:'對於base_class .__子類中的解析器__()' – jfs 2014-10-03 20:33:00
如果您找不到完全不同的完成整體目標的方法,我建議您堅持使用當前的方法。它看起來乏味且容易出錯,但元編程和操縱變量和標識符就好像它們是數據一樣,可能更具風險。你目前的方法看起來簡單易讀,所以你可以堅持下去。雖然這看起來像[XY問題](http://meta.stackexchange.com/questions/66377/what-is-the-xy-problem)。 – skrrgwasme 2014-10-03 20:33:04
@SLawson我最終的問題是,python的啓動時間比運行解析器的時間要長,但這種討論(我相信)超出了SO問題的範圍。 – AlexLordThorsen 2014-10-03 20:37:46