Python &引用;类型错误:';int';对象不可调用";此代码中的错误
下面的代码给了我这个错误,我感到困惑。抱歉,如果我问错了问题,我是新来的,但我认为这符合指导原则。图像将移动 在后台,我一释放钥匙,它就会给我这个错误并崩溃Python &引用;类型错误:';int';对象不可调用";此代码中的错误,python,pygame,Python,Pygame,下面的代码给了我这个错误,我感到困惑。抱歉,如果我问错了问题,我是新来的,但我认为这符合指导原则。图像将移动 在后台,我一释放钥匙,它就会给我这个错误并崩溃 Traceback (most recent call last): File "C:\Users\Samga_000\Desktop\game\game.py", line 89, in <module> rungame() File "C:\Users\Samga_000\Desktop\game\game.
Traceback (most recent call last):
File "C:\Users\Samga_000\Desktop\game\game.py", line 89, in <module>
rungame()
File "C:\Users\Samga_000\Desktop\game\game.py", line 79, in rungame
p.still()
TypeError: 'int' object is not callable
Player。仍然是一个布尔值,分配在这里:
class Player(pygame.sprite.Sprite):
def __init__(self):
# ...
self.still = True
您不能调用布尔值,因为它不是函数,因为您在此处尝试:
p = Player()
# ...
p.still()
Player。仍然是一个布尔值,分配在这里:
class Player(pygame.sprite.Sprite):
def __init__(self):
# ...
self.still = True
您不能调用布尔值,因为它不是函数,因为您在此处尝试:
p = Player()
# ...
p.still()
这与本文讨论的问题基本相同
您的问题是您有一个实例变量,仍然
,与您的方法同名。当您执行p.still()时,Python将p.still解释为尝试访问变量而不是方法,然后尝试“调用”该变量
解决方案是重命名方法或变量。要使代码正常工作,只需更改其中一个。但是,良好的编程实践可能会说,您应该同时改变这两个方面
由于变量是一个标志,指示播放器是否静止,因此可以将其名称更改为is\u still
。这是一个更具描述性的名称,它明确了变量的含义
对于该方法,您可以将其重命名为set_still
或mark_still
,以指示它正在更改播放机的状态。或者结合上述对变量名的更改,您可以使方法名set\u仍然是,以明确您正在设置的变量。这本质上与本文讨论的问题相同
您的问题是您有一个实例变量,仍然
,与您的方法同名。当您执行p.still()时,Python将p.still解释为尝试访问变量而不是方法,然后尝试“调用”该变量
解决方案是重命名方法或变量。要使代码正常工作,只需更改其中一个。但是,良好的编程实践可能会说,您应该同时改变这两个方面
由于变量是一个标志,指示播放器是否静止,因此可以将其名称更改为is\u still
。这是一个更具描述性的名称,它明确了变量的含义
对于该方法,您可以将其重命名为set_still
或mark_still
,以指示它正在更改播放机的状态。或者结合上面对变量名的更改,您可以使方法名set\u仍然是,以明确您正在设置的变量。我将“self.still=True”更改为“self.still=1”,现在它给了我“TypeError:'int'object is not callable”,这就是您最初声称的错误,而且1
仍然不是一个函数!我将“self.still=True”改为“self.still=1”,现在它给了我“TypeError:“int”对象不可调用”这就是您最初声称的错误,并且1
仍然不是函数!另请注意,move
中的if-else
块是多余的。您正在将if self.still=0
设置在if self.still==0
行的正上方,因此if
将始终为真。if else
中的if else
块是多余的。您正将if self.still==0
设置在if self.still==0
行的正上方,因此if
始终为真。