To jest ćwiczenie:

Napisz specjalną metodę __str__() dla CarRecord.

Wyjście próbki z wejściem: {X0}}

Year: 2009, VIN: ABC321

Poniższy kod jest tym, z czym wymyśliłem, ale otrzymuję błąd:

TYPEERROR: __str__ returned non-string

Nie mogę zrozumieć, gdzie poszedłem źle.

class CarRecord:
    def __init__(self):
        self.year_made = 0
        self.car_vin = ''


    def __str__(self):
        return "Year:", (my_car.year_made), "VIN:", (my_car.car_vin)

   

my_car = CarRecord()
my_car.year_made = int(input())
my_car.car_vin = input()

print(my_car)
0
Brandi Nicole Austin 22 marzec 2021, 18:08

1 odpowiedź

Najlepsza odpowiedź

Wracasz krotkę za pomocą wszystkich tych przecinków. Należy również używać self, a nie my_car, podczas gdy wewnątrz klasy. Spróbuj tak:

    def __str__(self):
        return f"Year: {self.year_made}, VIN: {self.car_vin}"

f Przed strucią powiem Pythonie, aby wymienić dowolny kod w szelkach wewnątrz ciągu z wynikiem tego kodu.

2
albert 22 marzec 2021, 15:13