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 

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

 

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

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

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

 

你可能感兴趣的:(python语言,python)