我不明白我应该如何创建静态方法,静态方法只运行一次,并生成一些输出,将用于其他方法。例如:
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()方法)?
答案 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