簡體   English   中英

類型錯誤:“int”對象不可調用 Python-3

[英]TypeError: 'int' object is not callable Python-3

我收到TypeError: 'int' object is not callable with (my_car.time())

運行我的課程后,我輸入了“O”,但它無法讀取時間()。

該程序:

class Car:
    def __init__(self,speed = 0):
        self.speed = speed
        self.odometer = 0
        self.time = 0

    def say_state(self):
        print("I'm going {} kph!".format(self.speed))

    def accelerate(self):
        self.speed += 5

    def brake(self):
        self.speed -= 5

    def step(self):
        self.odometer += self.speed
        self.time += 1

    def average_speed(self):
        if self.time != 0:
            return self.odometer / self.time
        else:
            pass

if __name__ == '__main__':

    my_car = Car()
    print("I'm a car!")
    while True:
        action = input("What should I do? [A]ccelerate, [B]rake, "
                 "show [O]dometer, or show average [S]peed?").upper()
        if action not in "ABOS" or len(action) != 1:
            print("I don't know how to do that")
            continue
        if action == 'A':
            my_car.accelerate()
        elif action == 'B':
            my_car.brake()
        elif action == 'O':
            print("The car has driven {} kilometers".format(my_car.odometer))
            print("The time taken is".format(my_car.time()))
        elif action == 'S':
            print("The car's average speed was {} kph".format(my_car.average_speed()))
        my_car.step()
        my_car.say_state()

輸出:

I'm a car!
What should I do? [A]ccelerate, [B]rake, show [O]dometer, or show average [S]peed?a
I'm going 5 kph!

What should I do? [A]ccelerate, [B]rake, show [O]dometer, or show average [S]peed?a
I'm going 10 kph!

What should I do? [A]ccelerate, [B]rake, show [O]dometer, or show average [S]peed?o

The car has driven 15 kilometers

Traceback (most recent call last):

  File "D:/PyCharm/New Folder/venv/Car.py", line 42, in <module>

    print("The time taken is".format(my_car.time()))

  TypeError: 'int' object is not callable


Process finished with exit code 1

程序中的time是一個變量,而不是class method ,因此您無法調用它,請將第 42 行更改為

print("The time taken is {} h".format(my_car.time)) ,它應該修復錯誤。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM