有可能知道python中子类文件的路径吗?

时间:2010-10-23 21:15:12

标签: python inheritance plugins

我有一个插件系统。插件子类来自一个共同的祖先......广告看起来像这样:

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

我需要阅读basePlugin.py Config.ini中的__init__信息。我会在每个插件中执行:

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

但是想知道是否可以在父类中知道哪个文件位于子类...

1 个答案:

答案 0 :(得分:13)

假设BaseSync是一个新式的类,父类BaseSync可以找到以这种方式定义PluginA的文件:

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

(所以你不必明确地传递path