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

mam*_*mcx 7 python inheritance plugins

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

-- SDK
--- basePlugin.py
-- PLUGINS
--- PluginA
---- Plugin.py
---- Config.ini
--- PluginB
---- Plugin.py
---- Config.ini
Run Code Online (Sandbox Code Playgroud)

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

class PluginA(BaseSync):
  __init__(self, path):
    super(PluginA,self).__init__(self, __file__)
Run Code Online (Sandbox Code Playgroud)

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

unu*_*tbu 14

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

import sys
class BaseSync(object):
    def __init__(self):
        path=sys.modules[self.__module__].__file__
Run Code Online (Sandbox Code Playgroud)

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