2013-03-16 45 views
0

在所有頁面搜索獲得給定類的子類的列表,我需要的是會得到所有的「py」爲指定目錄結束,然後在文件列表的功能,對於每個文件,找出該文件中是否有給定類的子類。如果有,則將該類的一個實例添加到列表中。如果不是,則繼續,然後在完成時返回列表。有人可以幫助我嗎?Python函數從目錄中

+0

@Asad請原諒我混淆的語言。 > _ <我想知道如何做到這一點,而不是如果可以做到。我編輯了我的問題來反映這一點。 – ceradon 2013-03-16 20:34:14

+1

您可能不需要手動執行此操作,因爲新樣式類保留了它們的直接子類。參見['__subclasses__'](http://docs.python.org/2/library/stdtypes.html?highlight=__subclasses__#class.__subclasses__)。 – martineau 2013-03-16 20:35:39

+0

@martineau我在某處讀到__subclasses__只返回直接繼承者或同一個文件中的繼承者,這是一個問題,因爲繼承者會遍佈整個地方。 – ceradon 2013-03-16 20:40:15

回答

2

使用imp模塊。通過load_moduleload_source,您可以將.py文件動態加載到模塊對象中。使用dir來查看該模塊中的內容,並且還有issubclass函數來檢查兩個類之間是否存在繼承。