python中的self是什么意思,init 又是什么意思

这个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)

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值