我有一个插件系统。插件子类来自一个共同的祖先......广告看起来像这样:
-- 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__)
但是想知道是否可以在父类中知道哪个文件位于子类...
答案 0 :(得分:13)
假设BaseSync
是一个新式的类,父类BaseSync
可以找到以这种方式定义PluginA
的文件:
import sys
class BaseSync(object):
def __init__(self):
path=sys.modules[self.__module__].__file__
(所以你不必明确地传递path
。