Python从不同文件夹中的模块父类继承

Python从不同文件夹中的模块父类继承,python,class,parent,Python,Class,Parent,我有以下目录 - actions - create_session.py - lib - __init__.py - prep_vars.py - details.xlsx 我在prep_vars.py中有以下代码 class PrepVars(object): def __init__(self): try: self._wb = load_workbook(filename='det

我有以下目录

  - actions
    - create_session.py
    - lib
      - __init__.py
      - prep_vars.py
      - details.xlsx
我在prep_vars.py中有以下代码

class PrepVars(object):

    def __init__(self):

        try:
            self._wb = load_workbook(filename='details.xlsx', data_only=True)
            self._ws = self._wb['Switch Details']
        except IOError:
           print ("test 123")
        self.ipadd_sw1 = self._ws['C7'].value
        self.ipadd_sw2 = self._ws['D7'].value
        self.user_sw1 = self._ws['C8'].value
        self.user_sw2 = self._ws['D8'].value
        self.password_sw1 = self._ws['C9'].value
        self.password_sw2 = self._ws['D9'].value
        self.icl1_sw1 = self._ws['C10'].value
        self.icl1_sw2 = self._ws['D10'].value
        self.session_vlan = self._ws['C12'].value
        self.session_network = self._ws['C13'].value
        self.session_subnet = self._ws['C14'].value
以及create_session.py中的以下代码

from lib.prep_vars import PrepVars

class SessionRun(PrepVars):

    def __init__(self):
        super(PrepVars, self).__init__()

    def run(self):
        print ("test {0}".format(self.ipadd_sw2))
当我运行代码时,我得到一个错误(见下文)。我不知道为什么会这样。如果代码在prep_vars.py中运行,它将正常运行

错误

AttributeError: 'SessionRun' object has no attribute '_ws'

可能是您的
try
块引发了异常。您是否看到打印出来的
“test 123”
?如果是,则确认异常引发,因此未定义
。\u ws


使用
try…不是最好的主意,除非是这样。

super(PrepVars,self)。\uuu init\uuuuuuuuuu()
应该是
super(SessionRun,self)。\uuuu init\uuuuuuuuuuu()
。实际上,您不是在调用
PrepVars.\uuuu init\uuuu()
而是在调用
对象。\uuuuu init\uuuu()
跳过
PrepVars
。我已经厌倦了。收到另一个错误,然后我发现工作表应该在actions文件夹中,而不是lib文件夹中。谢谢