在写深度学习代码时,发现了一个报错:
TypeError: Module.__init__() got an unexpected keyword argument 'out_channels'
最后发现其实是代码写错了一个小点:
def __init__(self, in_channels, out_channels , **kwargs):
#正确的
def _init_(self, in_channels, out_channels , **kwargs):
#报错的
__init__
是一个特殊方法,在对象创建时自动调用,用于初始化对象的属性。它的第一个参数是self,表示创建的对象本身。
_init_
则是一个普通方法,也在对象创建时自动调用,用于初始化对象的属性。它的第一个参数也是self,表示创建的对象本身。
在某些情况下,使用_init_
可能会报错。
这通常是因为在类的定义中,_init_
方法被定义为类方法,而不是实例方法。当你尝试在实例方法中调用_init_
时,Python会抛出一个TypeError异常,因为它期望的是类方法而不是实例方法。所以,如果你在类定义中定义了__init__
方法,那么你应该使用它来初始化对象的属性。如果你想要使用_init_
方法,你需要将它定义为类方法,而不是实例方法。
很弱智的一个问题,记录一下