super()在Sublime Text中抛出错误,在PyCharm / Terminal

时间:2017-03-15 19:34:54

标签: python sublimetext

我作为作业的一部分制作了以下代码。

class Question:
    """Base class for all questions"""

    question_count = 0

    def __init__(self, desc):
        self.desc = desc

        Question.question_count += 1


class MarkovMM(Question):
    def __init__(self, desc, arrival, service):
        super().__init__(desc)
        if self.desc == "Question 2":
            self.answer = round(1 - (1 - (arrival / service)) - ((1 - (arrival / service)) * (arrival / service)), 3)
        elif self.desc == "Question 3":
            self.answer = round(1 / ((service / 60) - (arrival / 60)), 4)

qu2 = MarkovMM("Question 2", 5, 23)
print(qu2.answer)
qu3 = MarkovMM("Question 3", 6, 22)
print(qu3.answer)

当我通过PyCharm和Ubuntu终端运行时,它运行正常。但是,在Sublime Text中运行它会产生以下错误。

Traceback (most recent call last):
  File "/home/estilen/Dropbox/College/Year_3/CSA2/Python/hello.py", line 20, in <module>
    qu2 = MarkovMM("Question 2", 5, 23)
  File "/home/estilen/Dropbox/College/Year_3/CSA2/Python/hello.py", line 14, in __init__
    super().__init__(desc)
TypeError: super() takes at least 1 argument (0 given)

为什么Sublime出现错误,而PyCharm或Terminal出现错误?

期望的输出:

0.047
3.75

1 个答案:

答案 0 :(得分:6)

您的sublimetext使用默认的构建系统,即Python 2.将其配置为在Python 3中运行。

#sizing-addon1{ background-color: transparent; border:none; font-size: 9px; font-weight: normal; padding:2px 5px; color:#C00 }

添加此内容:

Tools -> Build System -> New Build System ...

使用合理的文件名保存配置,例如{ "cmd": ["python3", "-u", "$file"], "file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)", "selector": "source.python" } ,然后在python3.sublime-build中选择此新创建的版本。