在执行方法之前,我可以让对象重新初始化吗?我使用Ruby和selenium来测试Web应用程序,我正在尝试改进我的页面对象。例如
class Foo
def initialize
#stuff happens here
end
def NewMethod
self.initialize
#What happens here is what I really want to happen
end
end
这是一个好主意还是坏主意?或者有更好的方法吗?
答案 0 :(得分:0)
始终可以更改对象中包含的数据。你可以把所有的init-logic放到另一个方法中,然后从你的自定义方法中调用它。
一般来说,你要做的事情听起来不是一个好主意......
答案 1 :(得分:0)
提前评论:方法以小写字母书写。请将NewMethod
替换为newmethod
。
如果您尝试Foo.newmethod
,则会收到错误。
你想做什么?您想定义创建对象的不同可能性吗?
你能做什么:
class Foo
def initialize
end
def self.newmethod
me = self.new
#Some actions ...
me #Return the (modified?) object
end
end
p Foo.newmethod #->#<Foo:0xb77d58>
Time
正在使用这样的东西。有Time.new
,Time.gm
,Time.local
...