我得到了这个对象层次结构:
init 0 python:
class CStats(object):
def __init__(self):
self.str = 10
self.dex = 10
self.con = 10
self.wis = 10
self.int = 10
self.cha = 10
def modify_str(self, amount):
# do some calculation to update str
pass
def modify_dex(self, amount):
# do some calculation to update str
pass
class CCharacter(object):
def __init__(self, name):
self.name = name
self.stats = CStats()
然后我得到了这个屏幕
screen edit_character(who):
frame:
vbox:
label "[who.name]"
grid 4 2:
text "Strength"
textbutton "<<":
action Null
text "[who.stats.str]"
textbutton ">>":
action Null
text "Dexterity"
textbutton "<<":
action Null
text "[who.stats.dex]"
textbutton ">>":
action Null
如何将对象方法who.stats.modify_str()和who.stats.modify_dex()称为屏幕文本按钮的动作?诉诸Call()动作需要标签,而创建标签只是为了调用方法似乎显得过大,并且污染了命名空间cos,我有很多这样的情况。
SetField()动作不会执行,因为有很多规则可以更新值,因此也可以更新方法。
谢谢