2015-10-29 97 views
0
class DetailedScore(Score): 
'''A subclass of Score adding level''' 

    def __init__(self, points, initials, level): 
     ''' 
     (Score, int, str, int) -> NoneType 

     Create a score including number of points, initials, and level. 
     ''' 

     super().__init__(points, initials) 
     self.level = level 

    def __str__(self): 
     ''' 
     Return a string representation of DetailedScore formated: 

     'The student with initials 'KTH' scored 100 points, the student is in level 10' 
     ''' 

     score_str = super().__str__() 

     return '{}, the student is in level {}'.format(score_str, self.level) 

    def __repr__(self): 
     ''' 
     Return a string representation of DetailedScore formated: 

     'DetailedScore(100, 'KTH', 10)' 
     ''' 

     return 'DetailedScore({}, {}, {})'.format(self.points, self.initials, self.level) 

score5 = DetailedScore(1000, 'JQP', 100) 
score6 = DetailedScore(999, 'ABC', 99) 
score7 = DetailedScore(999, 'BBB', 15) 
score8 = DetailedScore(1, 'KTH', 12) 

我想完成這個類,並且不知道爲什麼在嘗試構建時我總是收到錯誤。執行類時發生Python錯誤

這是錯誤:

Traceback (most recent call last): 
    File "/Users/KoryHershock/Documents/Python/[Kory_Hershock]_final.py", line 187, in <module> 
    score5 = DetailedScore(1000, 'JQP', 100) 
    File "/Users/KoryHershock/Documents/Python/[Kory_Hershock]_final.py", line 162, in __init__ 
    super().__init__(points, initials) 
TypeError: super() takes at least 1 argument (0 given) 
[Finished in 0.1s with exit code 1] 

回答

4

如果你正在使用Python 2,你必須寫super(DetailedScore, self),不super()

Python 3還允許編譯器插入從詞法上下文中獲取的適當類對象的無參數形式。

+0

我在我的電腦上安裝了python 3,我將如何讓Sublime Text 2運行它?或者我將如何通過終端運行python 3? –

+0

@KoryHershock Python 3可執行文件通常稱爲「python3」。如何在Sublime中進行設置可能是在Sublime相關論壇中最好的問題。 – user4815162342

2

變化super().__whatever__()super(Score, self).__whatever__()

+0

感謝您的回覆,試圖運行安裝在我的電腦上的python3,我將如何讓Sublime Text 2運行它?或者我將如何在python3中運行終端程序? –

相關問題