我有以下功能:
def mapLocation1():
if rooms[1]["mapLoc"] == rooms[currentRoom]["mapLoc"]:
#return(stuff)
elif "item" in rooms[1]:
#return(stuff)
else:
#return(stuff)
这个特殊的函数可以在我的程序中使用几次,最多可以使用三十次。当然,复制上面的函数很多次都不能得到很好的代码,修改起来很麻烦,而且很可能会被扩展,所以我想让它成为一个动态函数。然而,问题是,我的代码指的是我在别处建立的词典。这本词典看起来像这样:
rooms = {
1 : {
"mapLoc" : 1,
#MoreStuff
},
2 : {
"mapLoc" : 2,
#MoreStuff
},
}
字典中的几个子集被编号,这个编号总是与上面代码中使用的mapLocation#()相同。词典中的词条由于其内容的性质,必须手工定义,但是如果我能使函数动态化,而不是编写几十个相同的函数,除了一个三次提到的数字之外,这些函数会占用我太多的空间Using the answer to this question I found the following code to make a function dynamic:
def makefunc(val):
def somephase():
return '%dd' % (val,)
return somephase
Phase2 = makefunc(2)
Phase3 = makefunc(3)
然而,我尝试将它与我的函数结合起来,使其具有动态性,但到目前为止我没有运气。我怎么能做到这一点有什么想法吗
如何使用实例和类来实现这一点
您可以在类级别存储共享字典,还可以为每个对象实现不同的行为
相关问题 更多 >
编程相关推荐