我有一个Sleep
类(对象),并且在这个类sleepInSeconds()
方法中。
这样做有什么区别吗:
wait = Sleep()
wait.sleepInSeconds(10)
这样做:
wait = Sleep().sleepInSeconds(10)
或
Sleep().sleepInSeconds(10)
哪一个更正确(或“蟒蛇”),我会遇到什么样的问题之一或其他?有没有一些来自OO编程的首要原则应该引导我找到这个答案?
最佳答案
这三个功能都是正确的。主要的区别是在这段代码之后您打算做什么。
wait = sleep()
wait.sleepInSeconds(10)
上面的代码将留下一个名为
sleep
的wait
对象。如果您打算更多或更晚地使用这个对象,您可能需要这个。wait = sleep().sleepInSeconds(10)
以上将使返回值
sleepInSeconds()
等待。在某些情况下,这可能是None
。它也可以是一个整数。注意,可以有sleepInSeconds()
returnself
,在这种情况下,它在功能上等同于第一个块。sleep().sleepInSeconds(10)
上面的只会睡10秒钟。不会留下任何
sleep
对象。如果你不想再使用这个对象,就用这个。在我看来,最顽皮的是第一个和最后一个。如果你想保留对象,请使用第一个,如果你以后不需要对象,请使用第二个。