【发布时间】:2013-12-18 01:02:22
【问题描述】:
我正在搞乱类和字典,试图了解如何更好地使用它们。我想出的想法是创建一堆类,为某个对象提供一堆不同的描述符,我使用 D&D 中的怪物,然后创建一个包含所有这些怪物的字典,以便我可以使用来自从类中加载描述符的字典。
import dice #a dice module i made
import textwrap
class Goblin(object):
def __init__(self):
self.name = 'Goblin'
self.desc = 'bla bla bla, I'm not going to type the whole thing.'
self.health = dice.d8.roll(1) + 1
def describe(self):
print self.name
print self.health, 'other random info not in self.desc'
print textwrap.fill(self.desc, 60)
goblin = Goblin()
所以这是我的班级设置。当我输入 print goblin.describe() 时,一切正常。然后我设置了我的字典:
bestiary = {
'Goblin': goblin.describe()
}
我删除了 goblin.describe(),所以没有命令告诉程序打印任何内容,但是当我运行程序时,它运行 goblin.describe() 并显示描述我的地精的文本块。我的问题是它为什么要这样做,有没有办法让它不那样做,所以我可以独立使用 goblin.describe() 或 any_other_monster_I make.describe() 并让它拉出描述?
我知道可能有更简单的方法可以做到这一点,但我只是想弄清楚为什么它会这样做。
【问题讨论】:
标签: python class dictionary