python中类的继承与扩展、私有方法和属性,以及forward()函数

python类的私有方法和属性(即前面加__(或_)的方法或属性):

解释:类的私有方法和属性,可以由类内部的方法来访问,但是不可以由类的实例对象来访问。若类的实例对象想直接访问私有方法或属性,则需要:实例._类名__变量名的形式。

参考:https://www.cnblogs.com/randomlee/p/9026105.html 

python类的继承与扩展:

解释:可以通过将super().方法名X(参数)放在子类同名方法X的适当位置来对父类方法X的全部内容进行继承,然后可以进行扩展。(注意,在父类方法中定义的类属性,在子类中继续可用)

参考:https://blog.csdn.net/hef97/article/details/118418747 

python中的forward问题:

解释:(1)python通过类名来创建对象(这时会调用类的初始化函数),而通过实例化对象会自动调用内置的__call__()函数。因此,我们可以重写__call__()函数,来实现具体的操作,最常见的就是将参数传入forward()来进行操作。

(2)至于nn.Module,同样是有__call()__函数调用了farword()函数。因此,我们可以直接通过实例化对象来执行forward()函数。但是,由于__call()__函数内很多信息(不仅仅是forward()函数)需要nn.Module.__init()__来初始化,如果不继承nn.Module.__init()__而重写__init()__导致__call()__无法正常运行,进而无法调度forward()。因此,在继承nn.Module时,一定要继承nn.Module.__init()__

参考:https://zhuanlan.zhihu.com/p/357021687 

 

 

 

 

  • 3
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值