TypeError:init()接受0个位置参数,但给出了5个

时间:2018-04-10 23:08:30

标签: python neural-network

我正在用python编码,这条消息在我实时编码时出现:

Traceback (most recent call last)
<ipython-input-3-d56dec7d72db> in <module>()
      8 
      9 # create instance of neural network
---> 10 n= neuralNetwork(input_nodes,hidden_nodes,output_nodes,learning_rate)
     11 
  

TypeError: init ()获取0个位置参数,但是给出了5个

它到底意味着什么,我能做些什么呢?

这是我的代码:

#neural network class definition
class neuralNetwork:

#initialise the neural network
def __init__():
    pass

#train the neural network
def train():
    pass
#query the neural network
def query():
    pass

#initialise the neural network
def __init__(self,inputnodes, hiddennodes,outputnodes,learningrate):

# set number of nodes in each input, hidden, output layer
self.inodes= inputnodes
self.hnodes = hiddennodes
self.onodes = outputnodes 

#learning rate
self.lr = learningrate
pass

# number of input, hidden and output nodes
input_nodes = 3
hidden_nodes = 3
output_nodes = 3

# learning rate is 0.3
learning_rate = 0.3

# create instance of neural network 
n= neuralNetwork(input_nodes,hidden_nodes,output_nodes,learning_rate)

1 个答案:

答案 0 :(得分:0)

__init__课程中有2 neuralNetwork个方法:
1 __init__没有任何参数,1 __init__有4个参数。

您是否尝试创建多个/重载的构造函数? 你不能像Python那样(不像Java或C ++那样)。

您获得的错误意味着__init__没有使用任何参数,因此解释器不会指望任何参数,但您传递了4((input_nodes, hidden_nodes, output_nodes, learning_rate))然后+1 { {1}}。

根据您希望实例化类的方式,您必须删除不接受任何参数的类。

self

如果您想拥有多个构造函数,可以定义唯一的class neuralNetwork: # REMOVE THIS EMPTY CONSTRUCTOR # initialise the neural network # def __init__(): # pass # initialise the neural network def __init__(self,inputnodes, hiddennodes,outputnodes,learningrate): # initialization code # ... rest of class ... n = neuralNetwork(input_nodes, hidden_nodes, output_nodes, learning_rate)

__init__

或尝试其他帖子中已描述的其他方法: