将Class函数中的变量用于其他函数

时间:2015-11-05 19:11:58

标签: python class variables

作为Python的新用户,我尝试编写程序来学习如何使用类。这是我到目前为止在我的游戏课中所得到的

class Game(Table):
    def __init__(self):
        super().__init__(21, 10)
        self.reset()


    def __str__(self):
        return makeGrid(self)

    def reset(self):
        self.setValues(' ' for _ in range(210))
        for v in range(10):
            self[10, v]='+'
    def Startup(self):
        p1=input('Player 1 name: ')
        p2=input('Player 2 name: ')


    def p1turn(self):
        print('r%, its your turn!'% p1)

我的问题是我想在其他函数中使用p1和p2变量,但我意识到我无法访问函数中的变量并在其他函数中使用它。 (在这种情况下,如果我尝试运行我的p1turn(),我收到错误,因为p1不存在。

1 个答案:

答案 0 :(得分:2)

在每个函数中,传入的第一个引用(通常绑定到名称self)是对此类的实例对象的引用。可以将值存储为该实例的属性。

实际上,将self.放在要在方法之间共享的任何变量之前,如下所示:

def Startup(self):
    self.p1=input('Player 1 name: ')
    self.p2=input('Player 2 name: ')


def p1turn(self):
    print('r%, its your turn!'% self.p1)