相当于全球范围内的Rubys method_missing

时间:2014-06-13 11:32:35

标签: python ruby metaprogramming method-missing

我最近做了一些元编程,发现它在Ruby中要容易得多,主要是因为Ruby中的主要上下文是一个对象,我可以覆盖它的method_missing。

现在,Python中有几种构造模仿CLASSES中的行为(例如,使用__getattr__(),然后适当地处理它),但这并不适用于全球范围。

我想要实现的目标类似于this,作者在其中制作" _ "通过将其解码为Ruby函数,可以成为有效的Ruby脚本。如果您知道每次解释器不知道方法时,这当然很容易,他只会回到您创建的方法中。

您可以在Python中轻松地模拟它:

import _

try:
    ____ _ _____[and so on]
except NameError:
    [Handle it]

但这有些笨拙,如果你不得不只是包含模块而不做其他事情会更容易。我知道这可能是非pythonic的,但我很好奇是否可以在不搞乱Python解释器本身的情况下使用。

有没有人知道允许这种行为的构造?

此致 卡森

0 个答案:

没有答案