首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在方法中使用“self”关键字

在方法中使用“self”关键字
EN

Stack Overflow用户
提问于 2017-06-29 22:31:45
回答 1查看 66关注 0票数 0

考虑以下示例代码:

代码语言:javascript
复制
class Student:
    def __init__(self, *args):
        self.scores = args

    def calculate_sum(self):
        return sum(self.scores)

scores = list(map(int, input().split()))
s = Student(scores)
print("sum:", s.calculate_sum())

当我调用此方法时,会得到以下错误:

TypeError:不支持的操作数类型为+:'int‘和'list’

但是,如果我从属性分数中删除了'self‘关键字,它就会工作得很好:

代码语言:javascript
复制
def calculate_sum(self):
    print(sum(scores))

注意:输入是一行中以空格分隔的整数.例如:100 67 78

有人能解释一下为什么会发生这种情况吗? TypeError消息意味着什么(我要把int添加到列表中?!)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-06-29 23:59:54

首先,“分数”是作为一个列表发送的,而不是作为*args发送的。因此,这是不正确的,这使self.scores成为一个带有列表的元组。

其次,它只适用于‘分数’而不是'self.scores‘,因为’分数‘也是一个全局变量,这是一个列表。

谢谢NieDzejkob和WillemVanOnsem帮我找出这个蠢货。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44835945

复制
相关文章

相似问题

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