Q:
请教下各位,我们使用python写自动化测试。现在遇到问题:Class A是最基本的类,主要用于底层硬件接口的访问 Class B是设备的一个模块,需要继承Class A Class C是设备的另一个模块,也需要继承Class A Class D是设备总的类,需要继承Class B和ClassC 最终测试时,主要是实例化class D。但是因为Class D继承了B/C,相当与A被实例化了2次。而A是底层驱动,和硬件相关,不允许实例化两次,会有冲突 现在我想的办法是B继承A,C继承B,D继承C。这样能暂时解决。不知道大家有没有更好的办法?
需求:
我们目前是测试的一款芯片,读写芯片寄存器是通过电脑的串口实现的,我们写了一个class封装了硬件串口。芯片有多个模块,举例:蓝牙模块、wifi 模块。那蓝牙模块相关的function、寄存器封装了一个类(继承了上面说的串口类),同样,wifi模块也封装了一个类。这样的好处是,各个模块的负责人只需要修改自己模块的类,测试自己的类,不需要涉及到其他模块。 但到了芯片的系统级别测试,同事需要将所有的模块都整合到一起,就需要同时使用蓝牙模块类和wifi模块类,这就涉及到了硬件串口被两个模块同时调用的情况。但这是不允许的。
A:
以我的浅显理解 可以用 抽象类 串口类 class SerialPort def read(): pass def wright(): pass 然后 蓝牙和wifi 分别实现这个 串口类 def Bluetooth(SerialPort): def read(): xxx def wright(): yyy def WiFi(SerialPort): def read(): aaaa def wright(): bbbb
参考资料:
Python为什么要用抽象类(abc模块)?
转载请注明:在路上 » 【技术问答】Python函数继承和重复初始化问题