增加来自另一个类python的分数

Pro*_*mer 2 python

我试图在游戏中设置得分我在python/pygame编程.

当我有类似的东西时,我的分数有效:

global score 
score = 0
Run Code Online (Sandbox Code Playgroud)

伪:

if player_rect.coliderect(baddie_rect):
      score +=1
Run Code Online (Sandbox Code Playgroud)

然后我将分数显示在屏幕上.

但我想在另一个班级的功能中使用这个分数.在主类中调用该函数的位置.

所以

在碰撞功能中我想增加得分,这是在玩家类中.但我想在主要班级打印得分.我有这样的东西使用缩短的代码:

class player:
   .
   .
   .
   global score 
   score = 0
   def __init(self):
       self.score=0
   def get_score(self):
       return self.score
   def set_score(self, score):
       self.score = score
   def collision():
      .
      .
      if player_rect.coliderect(baddie_rect):
           self.score +=1
Run Code Online (Sandbox Code Playgroud)

当碰撞发生时我试图获得分数:

class main():
    player = player()
    player.colision()
    print player.get_score()
Run Code Online (Sandbox Code Playgroud)

什么都没发生,分数不增加!

有什么建议?

unu*_*tbu 5

class Player:
   def __init(self):
       self.score=0
   def collision():
      if player_rect.coliderect(baddie_rect):
           self.score +=1


class main():
    player = Player()
    player.collision()
    print(player.score)
Run Code Online (Sandbox Code Playgroud)

这里没有全局变量.在Python中,您几乎不需要getter或setter.只需score直接访问或设置实例属性即可.如果您需要self.score执行更复杂的操作,可以将其设置为属性,这样您就可以在不更改语法的情况下定义类似getter/setter的行为.