私はこのクラスのstrメソッドをここで定義しようとしています。これにより、クラスのインスタンスが印刷されるときに、My name is ___という形式のものが印刷されます。私は大学で何年も働いており、私は__プログラムを書いています。正しいフレーズの下には印刷されていますが、正しい値は印刷されません。どんな助けもありがとう。インスタンスの印刷と書式設定
class Student():
def __init__(self, name, years_at_umich=1):
self.name = name
self.years_UM = years_at_umich
self.bonus_points = random.randrange(1000)
self.programs_written = 0
def __str__(self):
return "My name is %s. I've been in college for %d years and I've written %d programs" \
%(self.name, self.years_UM, self.programs_written)
def shout(self, phrase_to_shout):
print phrase_to_shout
def year_at_umich(self):
return self.years_UM
def write_programs(self, progs=1):
self.programs_written += progs
return self.programs_written
***切り抜いた値のテスト、現在はそれが唯一の学生のための最後のテストに合格だ4 ********
あなたは方法 __str__を実装する必要がclass Student_test(unittest.TestCase):
def test_student1(self):
student1 = Student("Lyra")
self.assertEqual(student1.__str__(),"My name is Lyra. I've been at UMich for 1 years and I've written 0 programs.")
def test_student2(self):
student2 = Student("Aisha")
student2.write_programs()
self.assertEqual(student2.__str__(),"My name is Aisha. I've been at UMich for 1 years and I've written 1 programs.")
def test_student3(self):
student3 = Student("Ali",3)
student3.write_programs(4)
self.assertEqual(student3.__str__(),"My name is Ali. I've been at UMich for 3 years and I've written 4 programs.")
def test_student4(self):
student4 = Student("Aja")
student4.write_programs(12)
self.assertEqual(student4.programs_written, 12)
student4.write_programs()
self.assertEqual(student4.programs_written,13)
あなたの '' shout''メソッドは '印刷されません' phrase_to_shout '私の名前は泥です' ''あなたが期待するように、文字列をフォーマットすることはありませんが、あなたの議論を上書きします。同様に、 '' year_at_umich''メソッドはフォーマットされた文字列を返しません。 – Tankobot
この質問が文字列の書式設定に関するものではないと思われる場合は、可能な[duplicate](http://stackoverflow.com/questions/1535327/how-to-print-a-class-or-objects-of-class-using-print)代わりにインスタンスのカスタム文字列を印刷することに重点を置いています。 – Tankobot