在NDB模型中存储对非NDB对象的引用

时间:2015-09-05 18:07:19

标签: python google-app-engine

作为一个警告:我在这里是一个完全的新手。我不会感到惊讶,因为a)这已经得到了回答,但我无法找到它,因为我缺乏描述我的问题的词汇或b)我的问题基本上是愚蠢的开始,因为我想要做的就是傻。

是否有某种方法可以存储对定义并存储在活动内存中的类实例的引用,以及存储在NDB中?我试图编写一个可以帮助管理MMO中的一些角色/公会的应用程序。我有一个类CharacterClass,它包含我在main.py中定义为基本python对象的诸如armor,name等属性,然后为游戏中的每个类定义属性。将存储在数据存储区中的每个字符都将具有charClass属性,该属性将是对其中一个CharacterClass实例的引用。从理论上讲,我可以做像

这样的事情
if character.charClass.armor == "Cloth":

同时在数据存储中存储可能数百个唯一字符及其特定数据,但不创建" Cloth"对于每个布甲角色,或者查询数据存储区,法师每天佩戴数千次盔甲。

我不知道要在Character中使用哪种NDB属性来存储对适用的CharacterClass的引用。或者,如果这是正确的方法,甚至。感谢您抽出时间来解决我困惑的问题。

1 个答案:

答案 0 :(得分:0)

您只需要一个字符串。您只需要根据字符串值获取类。您可以创建一个自定义属性,在引用时自动实例化该类。

但是我觉得在代码中对值进行硬编码可能有点笨拙。可能是你的字符类实例也应该是数据存储区实体。这意味着您可以在不部署新代码的情况下调整这些参数。

如果你想在内存中使用这些对象,那么你可以在预热时预先缓存它们。

相关问题