如何在Ruby中更改变量时自动登录到控制台?

如何在Ruby中更改变量时自动登录到控制台?,ruby,events,logging,trace,Ruby,Events,Logging,Trace,在Ruby中,每当给定变量在执行过程中的任何时候发生更改时,我希望在控制台上打印一条消息 我应该如何处理这个问题?我应该给变量赋值的方法打补丁吗 我只能找到这个相关的问题,答案是建议重新定义“冻结”,但这种方法有局限性。而且它看起来不对劲。 难道没有更好、更一致的解决方案吗 添加您自己的getter/setter 例如: class Person def name @name end def name=(s) @name=s puts 'name has

在Ruby中,每当给定变量在执行过程中的任何时候发生更改时,我希望在控制台上打印一条消息

我应该如何处理这个问题?我应该给变量赋值的方法打补丁吗

我只能找到这个相关的问题,答案是建议重新定义“冻结”,但这种方法有局限性。而且它看起来不对劲。
难道没有更好、更一致的解决方案吗

添加您自己的getter/setter

例如:

class Person
  def name
     @name
  end
  def name=(s)
     @name=s
     puts 'name has changed!'
  end
end
这是不可能的

API和API都不支持跟踪变量赋值,并且

我应该给变量赋值的方法打补丁吗

……这种方法并不存在


我想,Ruby不认为变量是程序的面向对象结构的一部分。只有对象和方法。

如果对象上有属性,可以通过writer方法捕获所有调用,如
x=
。你有一些示例代码吗?