我正在为我的游戏编写一个modingapi,我想让用户告诉游戏引擎在API函数之前或之后运行他们的mod函数,换句话说就是“扩展”这些函数。在
在此之前,修改者必须重写函数以添加功能,这意味着挖掘游戏的源代码,我认为这对他们来说很糟糕。在
现在我在想这样的事情:
def moddersFunction():
pass
myAPI.extendFunction('functionName', 'before-or-after', moddersFunction, extraArgs=[])
现在有什么比较干净的方法来实现这一点呢? {如果你想用其他的词来写,你会怎么写?在
我想买本字典myAPI.extendFunction将向添加函数,API中的函数将检查并运行mod的函数(如果已设置(“已注册”)。 但这意味着在我的modding API中添加检查字典的代码,我想允许它被扩展(即使它只是一个单独的函数调用,它本身也会进行检查和函数调用,但它本身似乎很强大)。在
我在想,是否有一些简单的Python技巧可以在不“屠宰”(也许我夸张了)游戏API的现有源代码的情况下“扩展”函数。在
我会按照以下思路做些事情:
任何“可扩展”功能现在都可以这样装饰:
^{pr2}$现在,您可以使用
square.add_pre()
和square.add_post()
注册函数,这些函数将在每次调用square()
之前和之后自动被调用:我可能想做点什么。显然,您实际做的是特定于您的需求的。在
相关问题 更多 >
编程相关推荐