我有一个Sleep类(对象),并且在这个类sleepInSeconds()方法中。
这样做有什么区别吗:

wait = Sleep()
wait.sleepInSeconds(10)

这样做:
wait = Sleep().sleepInSeconds(10)


Sleep().sleepInSeconds(10)

哪一个更正确(或“蟒蛇”),我会遇到什么样的问题之一或其他?有没有一些来自OO编程的首要原则应该引导我找到这个答案?

最佳答案

这三个功能都是正确的。主要的区别是在这段代码之后您打算做什么。

wait = sleep()
wait.sleepInSeconds(10)

上面的代码将留下一个名为sleepwait对象。如果您打算更多或更晚地使用这个对象,您可能需要这个。
wait = sleep().sleepInSeconds(10)

以上将使返回值sleepInSeconds()等待。在某些情况下,这可能是None。它也可以是一个整数。注意,可以有sleepInSeconds()returnself,在这种情况下,它在功能上等同于第一个块。
sleep().sleepInSeconds(10)

上面的只会睡10秒钟。不会留下任何sleep对象。如果你不想再使用这个对象,就用这个。
在我看来,最顽皮的是第一个和最后一个。如果你想保留对象,请使用第一个,如果你以后不需要对象,请使用第二个。

10-08 02:31