2010-10-23 47 views
6

我有一個插件系統。從一個共同的祖先......廣告的插件子類是這樣的:有可能知道在Python中的子類文件的路徑?

-- SDK 
--- basePlugin.py 
-- PLUGINS 
--- PluginA 
---- Plugin.py 
---- Config.ini 
--- PluginB 
---- Plugin.py 
---- Config.ini 

我需要閱讀的Config.ini在basePlugin.py __init__的信息。目前在各插件我做的:

class PluginA(BaseSync): 
    __init__(self, path): 
    super(PluginA,self).__init__(self, __file__) 

但不知道是否有可能在該文件所在的子類的父類就知道...

回答

9

假設BaseSync是一種新式類,父類BaseSync可以發現,定義PluginA這樣的文件:

import sys 
class BaseSync(object): 
    def __init__(self): 
     path=sys.modules[self.__module__].__file__ 

(這樣你就不必通過path明確)。

相關問題