您能否解释从this article取得的概念stubbing out functions or classes
?残肢功能或类别
class Loaf:
pass
这个类没有定义任何方法或属性,但是从语法上,需要有东西在清晰度,让你用传球。这是一个Python保留字,意思是“一起移动,在这里看不到任何东西”。那就是什么都不做的语句,这是一个很好的占位符,当你删空函数或classes.`
谢谢
您能否解释从this article取得的概念stubbing out functions or classes
?残肢功能或类别
class Loaf:
pass
这个类没有定义任何方法或属性,但是从语法上,需要有东西在清晰度,让你用传球。这是一个Python保留字,意思是“一起移动,在这里看不到任何东西”。那就是什么都不做的语句,这是一个很好的占位符,当你删空函数或classes.`
谢谢
删空函数或类
这是指写作类或功能,但还没有实现它们。例如,也许我创建了一个类:
class Foo(object):
def bar(self):
pass
def tank(self):
pass
因为我还没有实现它们,所以我将这些函数剔除了。但是,我不认为这是一个伟大的计划。相反,你应该做的:
class Foo(object):
def bar(self):
raise NotImplementedError
def tank(self):
raise NotImplementedError
这样,如果你不小心调用该方法才执行,你会得到一个错误,那么没有发生。
原因pass
是,Python是缩进依赖,预计一个或更多冒号后面的缩进语句(如在class
或function
之后)。
如果没有任何语句(如存在停用的函数或类),则仍然需要至少一个缩进语句,因此可以使用特殊的pass
语句作为占位符。你可以很容易地把东西带不一样的效果:
class Loaf:
True
而且也很好(但不是在我看来,使用pass
不太清楚)。
Stubbing是一种软件开发技术。在你规划了一个模块或类之后,例如通过绘制它的UML图,你就可以开始实现它。
由于您可能需要实施很多方法和类,因此您需要从存根开始。这仅仅意味着你只写下一个函数的定义,并留下实际的代码供以后使用。优点是你不会忘记方法,你可以在代码中看到它的同时继续思考你的设计。
'stub'是一个占位符类或函数,它现在还没有做任何事情,但需要在那里才能定义所讨论的类或函数。这个想法是,你已经可以使用它的某些方面(比如把它放在一个集合中,或者把它作为一个回调函数传递),尽管你还没有编写实现。
成株是在许多情况下一个有用的技术,其中包括:
您的回答也属于接受,以使其完整且更有趣。 – xralf
所以,残桩只是提醒我需要实施一些东西? – xralf
@xralf,非常。 –
@xralf并非总是如此。有时候你想要一个没有操作的函数,声明一个空块的唯一方法是使用pass(类似于象C++这样的语言中的空花括号)。 – awesomo