Python:TypeError __init __()需要5个参数(给定4个)

时间:2017-11-14 10:10:18

标签: python python-3.x class object typeerror

我刚开始使用Python并遇到了一个我没有解释的问题。希望你能帮忙。

def createGrid(x,y,N):
    nDictionary={}
    for i in range(N+1):
        node=Node(i,x/N*i,y/N*i)
        nDictionary[node.nlabel] = node 

    return nDictionary

class Node(object):
    def __init__(self,nlabel,x,y,z):
        self.nlabel = nlabel
        self.coordinates = x,y,z

现在

nDictionary={}
node=Node(0,0,0,0)
nDictionary[node.nlabel]=node

有效,但调用方法

createGrid(10,10,10)

导致以下错误

TypeError: __init__() takes exactly 5 arguments (4 given)

我真的不知道为什么。

1 个答案:

答案 0 :(得分:1)

我想问题出在这一行:

import numpy as np
x = np.array(range(0,500))
b = np.array(([True] * 50 + [False] * 50) * 5)
x[b]

我猜你想在这里有4个参数,而不是3个。

(错误消息略有混淆的原因(说你应该给出5分4)是因为对node=Node(i,x/N*i,y/N*i) 参数的特殊处理 - 请参阅an external explanation