Ruby有method_missing,Ruby 有getattr.Boo是否提供了我可以用来拦截方法调用的东西?
在Ruby中,您可以捕获对缺少的方法的调用,并在运行中定义它.
我想在JavaScript中完成的是拥有一个没有方法的对象.我想将一个缺少的方法转换为对emit()的调用:
app.isReady() -> app.emit("isReady")
soldier.kills() -> soldier.emit("kills")
Run Code Online (Sandbox Code Playgroud)
我认为最好捕获丢失的方法错误并运行emit(methodName),而不是在运行时定义所有方法(来自固定列表).这样,如果对象有数百或数千个事件,我们就没有性能开销.
做这个的最好方式是什么?
更新:这是一个API设计,所以我宁愿远离:
try {
app.isReady()
} catch(e) {
...
}
Run Code Online (Sandbox Code Playgroud)
我想知道如何在幕后完成这一点,以便用户可以像往常一样使用方法.
Python 从何处借用了描述符的概念?
Python是否从其他编程语言借来的?在C#中,我只看到属性,但看不到描述符。
通过首先学习其他语言而不是直接学习Python,我不仅会受益于描述符,还会受益于其他概念吗?
.net ×1
boo ×1
intercept ×1
javascript ×1
oop ×1
porting ×1
python ×1
python-3.x ×1
reification ×1
sample ×1