'int' 对象没有引用 self.mx 的属性 'mouse_x'
'int' object has no attribute 'mouse_x' referring to self.mx
我有一个鼠标精灵,它在游戏循环的每次迭代中更新鼠标的 x 和 y 位置,但我不太确定下面的错误消息是什么:“'int' 对象没有属性'mouse_x',好像它指的是 'self' 作为一个 int 对象,而 'mouse_x' 是它的属性?
import pygame
class mouse_sprite(pygame.sprite.Sprite):
def __init__(self, x, y, screen):
self.screen = screen
self.mouse_x = x
self.mouse_y = y
self.update_rect(self.mx, self.my)
def update_rect(self):
self.rect = pygame.Rect(self.mouse_x, self.mouse_y, 1, 1)
def update(self, x=None, y=None, screen=None):
**#ERROR: 'int' object has no attribute 'mouse_x' Line 24: self.mouse_x = x**
if x is not None:
self.mouse_x = x
if my is not None:
self.mouse_y = y
if screen is not None:
self.screen = screen
self.update_rect()
mouse = mouse_sprite
mx, my = pygame.mouse.get_pos()
mouse.update(mx, my)
您不是在创建新对象。您只是像调用静态方法
一样调用 class 方法
而不是
mouse = mouse_sprite
做
object = mouse_sprite(...) # Pass init parameters
object.update(...) # Pass method parameters
当您在创建的对象上调用方法时,第一个参数作为 self
传递。在你的例子中,你没有创建一个新对象,所以第一个参数 mx
被分配给 self
类型的 int。而且它没有字段 mouse_x
.
我有一个鼠标精灵,它在游戏循环的每次迭代中更新鼠标的 x 和 y 位置,但我不太确定下面的错误消息是什么:“'int' 对象没有属性'mouse_x',好像它指的是 'self' 作为一个 int 对象,而 'mouse_x' 是它的属性?
import pygame
class mouse_sprite(pygame.sprite.Sprite):
def __init__(self, x, y, screen):
self.screen = screen
self.mouse_x = x
self.mouse_y = y
self.update_rect(self.mx, self.my)
def update_rect(self):
self.rect = pygame.Rect(self.mouse_x, self.mouse_y, 1, 1)
def update(self, x=None, y=None, screen=None):
**#ERROR: 'int' object has no attribute 'mouse_x' Line 24: self.mouse_x = x**
if x is not None:
self.mouse_x = x
if my is not None:
self.mouse_y = y
if screen is not None:
self.screen = screen
self.update_rect()
mouse = mouse_sprite
mx, my = pygame.mouse.get_pos()
mouse.update(mx, my)
您不是在创建新对象。您只是像调用静态方法
一样调用 class 方法而不是
mouse = mouse_sprite
做
object = mouse_sprite(...) # Pass init parameters
object.update(...) # Pass method parameters
当您在创建的对象上调用方法时,第一个参数作为 self
传递。在你的例子中,你没有创建一个新对象,所以第一个参数 mx
被分配给 self
类型的 int。而且它没有字段 mouse_x
.