当前位置:   article > 正文

python中类的继承与扩展、私有方法和属性,以及forward()函数_pythonz中的对象后面括号,为什么直接调用forward

pythonz中的对象后面括号,为什么直接调用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 

 

 

 

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/361205?site
推荐阅读
相关标签
  

闽ICP备14008679号