【发布时间】:2018-02-25 14:09:39
【问题描述】:
R 是否可以在函数内部定义函数属性?
它可以在外部定义,但函数内部是否有自引用的表示法?
f2 = function(x) {
x/2
attr(thisObject(),'type')='half' #something like thisObject()
}
在函数之外很容易做到这一点:
attr(f2,'type')='half'
在某种情况下,我需要知道传递了什么样的函数:
fCalc=function(f=f2,x){
if(attr(f,'type')=='half') {
cat('ok\n')
return(f(x))
} else cat( 'not ok')
}
fCalc(f2,4)
ok
[1] 2
【问题讨论】:
-
我很想知道这个用例。
-
您的情况并不能解释为什么需要在函数内部定义属性,而不是在函数外部。
-
因为每次我编辑函数时,我都必须记住重新定义属性。有时我会忘记...
-
函数内部有一种自引用形式。看看
?Recall。它是否能处理您的用例尚不清楚。 -
我不知道如何使用它。
Recall(attr(ModeloGAMBoost,'tipo')='GAMBoost')和attr(Recall(),'tipo')='GAMBoost'都不起作用。