<__main__. Objekt bei 0x02C08790> PYTHON
Ich bin neu in Python und ich sah diese Frage vor, aber keine Antworten haben für mich gearbeitet.
Ich erhalte
<__main__.Camera object at 0x02C08790>
und ich weiß nicht, warum!
Mein code ist unten, und ich wäre wirklich dankbar, wenn jeder konnte es betrachten und sagen Sie mir, wie stellen Sie sicher, sicher, es fließt richtig!
EDIT: ich möchte den code, um zu gehen von Calc_Speed zu kontern und dann wieder zu Calc_Speed grundsätzlich in einer Schleife und sorry für die Einrückung Fehler
class Camera():
distance = 2
speed_limit = 20
number_of_cars = 0
def Calc_Speed(self):
registration = input("Registration Plate: ")
Speeding_List=[]
start = float(input("Start time: "))
end = float(input("End Time: "))
speed = self.distance/(end-start)
print(("Average Speed: ") + str(round(speed, 2)) + (" mph"))
if speed > self.speed_limit:
list3= [str(self.registration)]
Speeding_List.append(list3)
print("Vehicles Caught Speeding: " + str(Speeding_List))
return(program.Counter())
else:
print("Vehicle Not Speeding")
return(program.Counter())
def Counter():
self.number_of_cars = self.number_of_cars + 1
print("Number Of Cars Recorded: " + str(self.number_of_cars))
return(program.Calc_Speed())
program = Camera()
print(program)
- Sie drucken eine
Speed_Camera
Objekt. Was erwarten Sie? - Hat Ihr code Einrückung Fehler, und es gibt nichts genannt
Speed_Camera
definiert. Auch, Sie sagte nie, was Sie beabsichtigen, das Programm zu tun, so kann niemand sagen, wie du das machen lassen, was Sie wollen. - Ich änderte den Namen der Klasse, die Kamera aus Speed_Camera ohne änderung des restlichen Codes. Oops! Sorry 🙂
- der Grund erhalten Sie diese Zeichenfolge gedruckt ist, weil Sie erstellen eine Instanz einer Klasse und prinitng es, sondern die Klasse selbst definiert nicht, was zurückgegeben werden soll, wenn Sie
print
auf Sie. auch Ihre Funktionen innerhalb Ihrer Klasse nicht aufgerufen. - wenn ich also so etwas wie " zu drucken (Programm.Calc_Speed()) i", das würde funktionieren?
- das nennen würde, die
Calc_Speed
- Funktion und drucken Sie dann, was es gibt.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie drucken Sie einfach ein Objekt, es zeigt die Objekt-id (wie
<__main__.Camera object at 0x02C08790>
), das ist völlig Unverständliches zu uns sterblichen. Sie können dies umgehen, durch die Definition einer__str__
oder__repr__
Funktion zum anzeigen der Daten für die Instanz in einer benutzerdefinierten Art und Weise.In Ihrem Fall:
Wenn es eine Instanz von
Camera
mit der Start-Variablen-Werte, würde es wieder"<__main__.Camera: distance = 2; speed_limit = 20; number_of_cars = 0>"
.Den
<__main__.Camera object at 0x02C08790>
ist das, wie merkt sich das system, aber abgesehen von der Anzeige, welche Art von Objekt es sich handelt, ist es meist nutzlos.Sowas hatte ich
def
HTML:
Ich nur chnaged "toString" in "repr" und es funktioniert jetzt