gpt4 book ai didi

python - 为什么 `print(object)` 显示 `<__main__. object at 0x02C08790>` ?

转载 作者:行者123 更新时间:2023-11-28 20:42:23 24 4
gpt4 key购买 nike

我不断得到

<__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)

最佳答案

当你只是打印一个对象时,它会显示对象 ID(如 <__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>" .

<__main__.Camera object at 0x02C08790>是系统如何记住它,但除了显示它是什么类型的对象外,它几乎没有用。

关于python - 为什么 `print(object)` 显示 `<__main__. object at 0x02C08790>` ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30832999/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com