Python 创建类对象时出现类型错误
我在研究神经网络。当我从Python 创建类对象时出现类型错误,python,class,typeerror,Python,Class,Typeerror,我在研究神经网络。当我从NNetwork内部NNetwork使用函数时,它会引发: Traceback (most recent call last): File "C:\Python27\MyPython\MyNeuralNetwork.py", line 72, in <module> NeuralNet.train([[3,5,2],[10,8,1],[35,3,6],[345,3,32]]) File "C:\Python27\MyPython\MyNeura
NNetwork
内部NNetwork
使用函数时,它会引发:
Traceback (most recent call last):
File "C:\Python27\MyPython\MyNeuralNetwork.py", line 72, in <module>
NeuralNet.train([[3,5,2],[10,8,1],[35,3,6],[345,3,32]])
File "C:\Python27\MyPython\MyNeuralNetwork.py", line 67, in train
self.train331()
File "C:\Python27\MyPython\MyNeuralNetwork.py", line 44, in train331
x1 = self.UseNN(N1,x)
TypeError: UseNN() takes exactly 1 argument (3 given)
需要更改什么?除非类方法用
@classmethod
修饰,否则第一个参数总是预先填充self
(实例本身)。因此,通过将UseNN
的签名从
def UseNN((NN,InputList)): # accepts self (NN), and 1 more argument
到
问题将消失。一个问题是您忘记在
UseNN
中添加self
作为第一个参数
这里的另一个问题是(NN,InputList)
周围的括号,这使得函数需要一个参数,一个元组
获得你想要的东西的正确方法是:
def UseNN(self, NN,InputList):
这会解决它的。此外,应避免对函数和变量使用CamelCase
。它通常用于类,以区分它们
希望有帮助 真的吗?我只是快速浏览一下。不用担心,他可以稍后再问另一个问题:)如果可能的话,这个元组参数解包是升级到Python 3的一个很好的理由-它会在函数定义中发现这个错误,因为在定义中包含参数元组现在是一个
SyntaxError
。当然,丢失的self
仍然是个问题。啊,我明白了,刚刚测试过。谢谢你的信息!
def UseNN(self, NN, InputList): # accepts self, and 2 more arguments
def UseNN(self, NN,InputList):