我有一个带有写入日志的方法的模块。在每条消息中,我想输入记录此消息的类的名称。
该模块可以混合使用include
或extend
。我需要我的日志在每种情况下都有正确的类名。
蒸馏代码:
module M
def f
self.class.name
end
end
class C
extend M
include M
end
p C.f # => "Class"
p C.new.f # => "C"
如您所见,第一个调用错误地打印"Class"
. 我也希望如此"C"
。
如何做到这一点?