的方面,我有以下代碼評估和演示在另一類
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