【发布时间】:2017-08-06 17:53:11
【问题描述】:
我已生成以下代码作为作业的一部分。
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
【问题讨论】:
-
因为您的
Sublime可能指向 Python3 版本,而终端和 PyCharm 正在调用 Python2。 -
@Abdou 我的意思是使用 Python 3。
-
似乎 Sublime 已经指向 Python3,如果代码段在那里运行没有任何问题。也许 PyCharm 和您的终端可能需要在这里进行设置。
-
@Abdou wim 的解决方案解决了我的问题。 Sublime 实际上是指向 Python2 并且是 Sublime 抛出错误,而不是 PyCharm/Terminal。不管怎样,谢谢你。 :)
标签: python sublimetext