当前位置:  开发笔记 > 编程语言 > 正文

Python - 无法在类中获得2个方法来共享数据

如何解决《Python-无法在类中获得2个方法来共享数据》经验,为你挑选了1个好方法。

我正在尝试使用python/pygame.

我做了一个简单的球员课.

class Player():
  def __init__(self):
    self.posx = 10
    self.posy = 20


  def render (self):
    pygame.draw.rect(screen,(255,0,0), (self.posx,self.posy,100,100))

  def walk (self):
    self.posx += 10

渲染功能:

def render():
  player = Player()
  player.walk()
  player.render()

循环:

running = True
while running:
  render()
  for event in pygame.event.get():
    if event.type == pygame.QUIT:
      running = False

我假设这段代码每帧都会向x位置添加10个像素.但相反,它会在第一次渲染时将位置更新为20并保持在那里.

我尝试打印该值并且它确实打印了walk和渲染的每一帧,所以循环工作正常,那么为什么这个位置不会得到更新?



1> Oz123..:

您正在每次调用时重新创建实例render.

player = Player()
def render(player): 
  player.walk()

这应该更好:

running = True
player = Player()

while running:
  render(player)
  for event in pygame.event.get():
    if event.type == pygame.QUIT:
      running = False

编辑:

作为timgeb,在现在删除的帖子中指出,方法渲染是非常不需要的.我把它留给了OP,以便用他原来的代码风格更加清晰.

推荐阅读
手机用户2502852037
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有