< __ main__。对象在0x02C08790>蟒蛇

时间:2015-06-14 18:27:17

标签: python python-3.x

我是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)

5 个答案:

答案 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()