gpt4 book ai didi

ruby - 查找类方法是在外部还是在内部调用

转载 作者:数据小太阳 更新时间:2023-10-29 07:17:20 25 4
gpt4 key购买 nike

class MyParent
def self.foo
if this_method_was_called_internally?
puts "yay"
else
puts "boo"
end
end
end

class MyLibrary < MyParent
foo # yay
end

MyLibrary.foo # boo

这可能吗?

最佳答案

简单的答案是否定的。但是,您可以使用 caller,它可以让您访问调用堆栈,就像异常回溯一样:

def this_method_was_called_internally?
caller[1].include?(...)
end

(caller[1] 将是之前的调用,即调用 this_method... 的方法)

这非常 hackish,您从 caller 获得的信息可能还不够。

除了实验之外,请不要使用它。

关于ruby - 查找类方法是在外部还是在内部调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5836191/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com