2015-09-14 83 views
0

我知道在没有classmethod director的情况下可以选择调用这些函数吗?但除了用类参数调用它之外,还有什么好处呢?我们在哪里使用python类方法装饰器?

+0

其他OO语言具有这种构造,例如,在Java和C++中,这些被称为静态方法。它提供了一种将相关代码组织到不需要实例的类的方法。你可以在课堂外实施,但可能缺乏你想要的凝聚力。什么的优点,一个正常的功能或实例方法? – AChampion

+0

我同意关于静态方法和使用类名称调用类函数的差异。但是何时和为什么我们需要它?我正在寻找一个真正的案例方案,特别是类方法。 – jsk

+1

请参见[此问题]的接受的答案(http://stackoverflow.com/questions/12179271/python-classmethod-and-staticmethod-for-beginner) – FallenAngel

回答

0

使用classmethod装饰器它的行为就像一个替代构造函数。

虽然它仍然需要使用您需要的参数,您可以在其中执行其他操作。为了简单起见。这就像你的班级的另一个__init__方法。

+0

没有要求classmethod返回类的实例。 –

+0

虽然true,但您不需要实例化类以使用类方法。概念。这是一个替代构造函数。我使用'__init__'的参数意味着如果你的类有一个'__init__'并且需要3个参数,当你返回'@ classmethod'中的'class'的时候,你还需要相同数量的参数。因此是最基本意义上的替代构造函数 – Zion