Python 在类方法方面有困难
所以我完全不明白为什么我的Player类方法不起作用 这是我的玩家课程的一部分:Python 在类方法方面有困难,python,methods,Python,Methods,所以我完全不明白为什么我的Player类方法不起作用 这是我的玩家课程的一部分: class Player( pygame.sprite.Sprite ): def __init__( self ): super( Player, self ).__init__() self.size = self.w,self.h = 75,75 self.image = pygame.Surface( ( self.size ) )
class Player( pygame.sprite.Sprite ):
def __init__( self ):
super( Player, self ).__init__()
self.size = self.w,self.h = 75,75
self.image = pygame.Surface( ( self.size ) )
self.image.fill( white )
self.move_y = 0
self.move_x = 0
self.level = None
def set_properties(self):
self.rect = self.image.get_rect()
self.speed = 5
def set_position( self, x, y ):
self.rect.x = x
self.rect.y = y
这里是我调用方法set_position的地方
player = Player()
player.set_position( 40, 40 )
看起来一切正常,但我收到以下错误消息:
Traceback (most recent call last):
File "C:/Desktop/CubeRunner/main_v2.py", line 194, in <module>
player.set_position( 40, 40 )
AttributeError: 'Player' object has no attribute 'set_position'
回溯(最近一次呼叫最后一次):
文件“C:/Desktop/CubeRunner/main_v2.py”,第194行,在
玩家。设置位置(40,40)
AttributeError:“玩家”对象没有属性“设置位置”
正如莫里斯所说,您的问题在于缩进。Python对代码中的缩进非常严格,因为缩进非常重要。缩进替换大括号、分号等
以下是带有适当缩进的代码:
class Player( pygame.sprite.Sprite ):
def __init__( self ):
super( Player, self ).__init__()
self.size = self.w,self.h = 75,75
self.image = pygame.Surface( ( self.size ) )
self.image.fill( white )
self.move_y = 0
self.move_x = 0
self.level = None
def set_properties(self):
self.rect = self.image.get_rect()
self.speed = 5
def set_position( self, x, y ):
self.rect.x = x
self.rect.y = y
如果您想了解有关Python缩进的更多信息(以及为什么会这样),请查看以下答案:
- 正如莫里斯所说,您的问题在于缩进。Python对代码中的缩进非常严格,因为缩进非常重要。缩进替换大括号、分号等
以下是带有适当缩进的代码:
class Player( pygame.sprite.Sprite ):
def __init__( self ):
super( Player, self ).__init__()
self.size = self.w,self.h = 75,75
self.image = pygame.Surface( ( self.size ) )
self.image.fill( white )
self.move_y = 0
self.move_x = 0
self.level = None
def set_properties(self):
self.rect = self.image.get_rect()
self.speed = 5
def set_position( self, x, y ):
self.rect.x = x
self.rect.y = y
如果您想了解有关Python缩进的更多信息(以及为什么会这样),请查看以下答案: