0
点赞
收藏
分享

微信扫一扫

树优超云自动化测试框架

陈情雅雅 2024-08-11 阅读 28

这个B站的视频讲的self非常的清晰:Python面向对象的self究竟是什么?_哔哩哔哩_bilibili

这个B站的视频讲的_init_非常的清晰:Python类中 __init__ 的通俗解释是什么?_哔哩哔哩_bilibili

self

笔者之前学过C++,类似于C++,python首先定义一个类。如下图定义了一个TB类。

self实际上相当于是类的实例对象(下面会讲)。

在下面的图中,实例化了一个TB类  tb。

实例对象

像下面的代码,首先dog = Animal(),实例化了一个Animal类,然后dog.sleep()函数就是将dog代替代码中所有的self,然后发现要调用的是sleep方法,调用就好了。

_init_

是python中的构造函数,就是一开始实例化的时候就会执行一次。类似于c++。

还用这个TB类和它的调用举例子,下面实例化一个TB类tb。在实例化时候, tb = TB(dut),会传入参数dut,然后调用构造函数__init__(self, dut)。

然后接下来 self.dut = dut:让self.dut 等于传入的dut。

    def __init__(self, dut):
        self.dut = dut

        self.log = logging.getLogger("cocotb.tb")
        self.log.setLevel(logging.DEBUG)

        # 创建一个时钟,周期是8ns
        cocotb.fork(Clock(dut.clk, 8, units="ns").start())

        #  它从仿真测试中的 dut(即设备测试对象)的 "s_phv" 前缀的接口发送数据
        # self.mod_source = ModSource(ModBus.from_prefix(dut, "s_mod"), dut.clk, dut.rst)
        self.phv_source = PhvSource(PhvBus.from_prefix(dut, "s_phv"), dut.clk, dut.rst)
        # 用于模拟接收端,它从仿真中的 dut 的 "m_phv" 前缀的接口接收数据
        self.phv_sink = PhvSink(PhvBus.from_prefix(dut, "m_phv"), dut.clk, dut.rst)
举报

相关推荐

0 条评论