2010-10-23 58 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明确)。

相关问题