的方面,我有以下代码评估和演示在另一类
class Tester
def eval_something(string)
eval(string) # How to change?
end
def printer
p "Not what I want"
end
end
class MyClass
def printer
p "Hello World"
end
end
t = Tester.new
t.eval_something("printer")
我想要一个Tester
实例的eval_something
到的MyClass
背景下评估的代码。因此,例如,我希望此脚本打印出Hello World
而不是Not what I want
。
这可以实现吗?
你不希望MyClass作为测试器的子类..对吗?或者您准备好同意更改您的代码的任何建议? –
是的,'MyClass'是一个独立的实体,与'Tester'无关。基本上我想知道我是否可以让一个类使用另一个类的上下文进行评估。 – MxyL
你的问题没有意义。 'printer'是一个实例方法。它不能在“MyClass”上下文中评估 - 只能在“MyClass”的_instance_上下文中进行评估。针对您的问题有各种可能的解决方案,但它们都涉及代码结构的根本性改变,而且我不清楚您实际需要什么。 这听起来像你想调用另一个类的实例方法而不创建该类的实例,但这没有任何意义。 – Max