首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >类型错误接受1个位置参数,但给出了4个

类型错误接受1个位置参数,但给出了4个
EN

Stack Overflow用户
提问于 2018-04-18 10:48:00
回答 1查看 3.4K关注 0票数 2

我目前正在为涉及Matrix实现的家庭作业编写以下代码:

代码语言:javascript
运行
复制
class MyMatrix(object):
    def __init__(self, n, m, t):
        self.n = n
        self.m = m
        self.t = t

        self.data = []
        for i in range(0, self.n):
            row = []
            for i in range (0, self.m):
                row.append(self.t())
            self.data.append(row)

    def set(self, i, j, v):
        self.data[i][j] = v

    def get(self, i, j):
        self.data[i][j]

    def __str__(self):
        n = self.__class__.__name__ + "({})".format((self.n,self.m))
        for i in range(0, self.n):
            for j in range(0, self.m):
                s += str(self.get(i,j)) + " "
            s += "\n"
        return s

class MySparseMatrix(MyMatrix):

    def __init__(self):
        def __init__(self, n, m, t):
            self.n = n
            self.m = m
            self.t = t
            self.data = {}

    def set(self, i, j, v):
        key = (i, j)
        self.data[key] = v

    def get(self, i,j):
        key = (i, j)
        return self.data.get(key, self.t())

我正在尝试打印:

代码语言:javascript
运行
复制
tt = MySparseMatrix(int, 2, 2)
tt.set(0,0,11)
tt.set(0,1,5)
tt.set(1,0,2)
print(tt.get(0,1))
print("tt = ", tt)

但它给了我

代码语言:javascript
运行
复制
TypeError: __init__() takes 1 positional argument but 4 were given

对如何修复这个错误有什么建议吗?我对Python非常陌生。

(说我需要在我的问题中添加更多细节,所以忽略这个: dfjsdfasjdfasdjfasfajfkajsfkajsdfksakfjasdfkjasdfkasdfnasdfbafdbhsdfdfdfskfjdfjsfjsfsjafasjdfaskfgskadfakfaskdfaskfdalsfkasfdkalsdfkasldfksldfkasdfkasdflksdflaksfdlkasdflaksdfkafa)

EN

回答 1

Stack Overflow用户

发布于 2018-04-18 10:56:13

这里的问题出在MySparseMatrix中的__init__函数中;定义中有两个__init__函数,这意味着当您创建MySparseMatrix对象时,它不会调用接受参数的__init__函数。

要修复它,只需删除第一个__init__,如下所示:

代码语言:javascript
运行
复制
def __init__(self, n, m, t):
    self.n = n
    self.m = m
    self.t = t
    self.data = {}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49890365

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档