我是Python的新手,我之前看过这个问题,但没有一个答案对我有用。 我一直在
<__main__.Camera object at 0x02C08790>
我不知道为什么! 我的代码在下面,我真的很感激,如果有人能看到它,只是告诉我如何确保它正确流动! 编辑:我希望代码从Calc_Speed转到Counter然后回到Calc_Speed基本上是循环并抱歉缩进错误
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)
答案 0 :(得分:6)
当你打印一个对象时,它会显示对象id(如int main(int argc, char * argv[]) {
@autoreleasepool {
// stop here:
return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
}
}
),这对我们凡人来说是完全无法辨认的。您可以通过定义<__main__.Camera object at 0x02C08790>
或__str__
函数以自定义方式显示实例的数据来解决此问题。
在你的情况下:
__repr__
如果有一个def __repr__(self):
return "<__main__.Camera: distance = " + str(self.distance) + "; speed_limit = " + str(self.speed_limit) + "; number_of_cars = " + str(self.number_of_cars) + ">"
的实例带有起始变量值,它将返回
Camera
。
"<__main__.Camera: distance = 2; speed_limit = 20; number_of_cars = 0>"
是系统记住它的方式,但除了显示它是什么类型的对象外,它几乎没用。
答案 1 :(得分:0)
我有这样的东西 def
def __toString__(self):
return "{} is {} cm tall and {} kilogram and self.__sound)
我只是将“ toString”更改为“ repr”,并且现在可以正常使用
答案 2 :(得分:0)
您不是要打印对象本身,而是要打印该对象的功能。如果您将最后一行替换为:
//boolean optionCreate = super.onCreateOptionsMenu(menu);
//boolean optionSelect = super.onOptionsItemSelected(item);
该程序的工作方式与您所寻找的类似。
答案 3 :(得分:0)
我同意Sandford Basset 您也可以尝试
program.Calc_Speed()
答案 4 :(得分:0)
program.Calc_Speed()
program.Calc_Speed()