如何在其他方法中使用静态方法生成的输出?

时间:2014-07-26 18:52:32

标签: python

我不明白我应该如何创建静态方法,静态方法只运行一次,并生成一些输出,将用于其他方法。例如:

class Player():

    @staticmethod
    def generateCardDeck():            
        deck = someCalculations

    def someOtherMethod(self):
        something = deck

def main():    
Player.generateCardDeck()

if __name__ == '__main__':
    main()

不会起作用,我收到错误:NameError: global name 'deck' is not defined。但是如果我不使用静态方法,那么如何创建该类的多个实例,而不是多次运行该方法(考虑到其他类方法会调用generatedDeck()方法)?

1 个答案:

答案 0 :(得分:0)

你可以退回牌组并在任何你想要的地方使用它......或者你可以把它变成一种类方法

class Player():

    @classmethod
    def generateCardDeck(cls):            
        cls.deck = someCalculations


Player.generateCardDeck()
print Player.deck

我想你可以用静态方法做大致相同的

class Player():
    @staticmethod
    def generateCardDeck():            
        Player.deck = someCalculations
Player.generateCardDeck()
print Player.deck