我正在制作一个RPG,并且试图将事情分解成多个文件以更好地组织事情。 (我的意思是,单独创作的角色超过2000行)。但这是我从未做过的事情,我真的不知道该怎么做。所以,如果我能得到一些关于如何有效设置事物的一般建议,我会非常感激。除了关于python网站上的模块的页面外,我确实一直无法找到关于这个主题的很多内容,但我对此还是有点不清楚。这绝对是目前我在编程中遇到的最混乱,最少讨论的事情......而且我讨厌提出这样的模糊问题,但我绝对没有取得任何进展,希望你们中的一个能让我走上正确的道路。需要帮助用Python中的多个文件进行编程
我会举一个具体的例子。
我想将角色的所有属性和技能都放到一个或两个列表中,所以我可以更方便地将它们用于函数,而我不知道如何使用另一个文件中的列表作为参数一个函数。这是我尝试过的,它似乎应该起作用。我将这个文件导入CharacterCreation,然后使用“StatCalculations.LevelUp(PLAYERSTATLIST)”,但它说''模块'对象没有属性'LevelUp'“。
我在做什么错?
from CharacterCreation import BaseHEALTH, BaseMANA, BaseSTAMINA, BaseCAPACITY, BaseDEFENSE, STRENGTH, ENDURANCE, AGILITY, INTELLIGENCE, PERSONALITY, BaseSTRENGTH, BaseENDURANCE, BaseAGILITY, BaseINTELLIGENCE, BasePERSONALITY, PLAYERLEVEL, PLAYERNAME
def LevelUp(*PLAYERSTATLIST):
HEALTH = BaseHEALTH + (ENDURANCE/2) + (STRENGTH/5)
MANA = BaseMANA + INTELLIGENCE + (ENDURANCE/10)
STAMINA = BaseSTAMINA + (STRENGTH/5) + (ENDURANCE/5)
CAPACITY = BaseCAPACITY + (STRENGTH/5) + (ENDURANCE/10)
DEFENSE = BaseDEFENSE + (ENDURANCE/10) + (AGILITY/10) + (STRENGTH/10)
PLAYERSTATLIST = [HEALTH, MANA, STAMINA, CAPACITY, DEFENSE, BaseHEALTH, BaseMANA, BaseSTAMINA, BaseCAPACITY, BaseDEFENSE, STRENGTH, ENDURANCE, AGILITY, INTELLIGENCE, PERSONALITY, BaseSTRENGTH, BaseENDURANCE, BaseAGILITY, BaseINTELLIGENCE, BasePERSONALITY, PLAYERLEVEL, PLAYERNAME]
return PLAYERSTATLIST
我不得不考虑使用[面向对象编程(http://en.wikipedia.org/wiki/Object_oriented_programming)方法,你的代码将大大受益 - 认为这将是多么艰难如果你在你庞大的玩家统计列表中交换了`BaseHEALTH`和`BaseMANA`,就会发现一个bug。让每个玩家成为Player类的对象,并将这些特征存储为类成员,这样你就可以通过名称来引用它们,而不用关心如何排序变量。 – sarnold 2011-12-15 03:06:40