如何仅在需要时创建和使用类变量/方法?

时间:2017-04-18 10:08:49

标签: python

我正在研究使用播放器数据的模型。在开发期间,仅需要某些数据。我的想法是创建一个PlayerData课程,但我的业余爱好者不理解/知道如何正确地做到这一点。

我理解这段代码是基本的,但它仅仅是例如......

class PlayerData(object):
    def __init__(self, player_id):
        self.player_id = player_id

    def past_games(self):
        # only if requested, query DB for data

    def vital_info(self):
        # only if requested, query DB for data

    def abilities(self):
        # only if requested, query DB for data

pd = PlayerData(235)

如果我是第一次调用pd.vital_info,我只想在那时执行查询。我如何构造这个以便在没有其他查询的情况下运行所请求的查询(除非稍后需要)?

2 个答案:

答案 0 :(得分:1)

以下代码可以帮助您了解如何在Python中调用类的函数。

class PlayerData:

    def __init__(self,player_id):
        print("Calling __init__. Yay!")
        self.player_id = player_id

    def past_games(self):
        print("Calling past_games")
        # only if requested, query DB for data

    def vital_info(self):
        print("Calling vital_info")
        # only if requested, query DB for data

    def abilities(self):
        print("Calling Abilities")
        # only if requested, query DB for data

>> p = PlayerData(1)
Calling __init__. Yay! #No other method was called so you see not print out
>>p.past_games()
Calling past_games
>>p.vital_info()
Calling Vital info
>>p.abilities()
Calling Abilities

如您所见,需要显式调用类函数。当类是初始化程序时,只有少数方法被调用。其中一个是__init__

答案 1 :(得分:0)

你根本不需要做任何事情。如果您的查询采用单独的方法,则只会执行您实际调用的方法。