调用不同类从一个类的方法在python
比方说,我有这样的代码:调用不同类从一个类的方法在python
class class1(object):
def __init__(self):
#don't worry about this
def parse(self, array):
# do something with array
class class2(object):
def __init__(self):
#don't worry about this
def parse(self, array):
# do something else with array
我希望能够从Class2中,反之亦然调用类class1的解析。我知道用c + +这可以很容易地做到这一点
class1::parse(array)
我将如何做python的等效?
这听起来像你想有一个static method:
class class1(object):
@staticmethod
def parse(array):
...
注意,在这种情况下,您离开关通常要求的self
参数,因为parse
不是叫上class1
特定实例功能。
在另一方面,如果你想它仍然依赖于它的主人类中的方法,你可以写一个class method,其中第一个参数实际上是类对象:
class class1(object):
@classmethod
def parse(cls, array):
...
是的,谢谢,这看起来像会起作用。 – Swiss 2010-07-22 18:22:34
需要注意的是,如果您觉得这样的staticmethods的需要,这是一个强烈的暗示'class1'和'class2'应的模块,而不是阶级(或至少使用'parse' staticmethods应该是功能,而不是。) – 2010-07-22 18:28:17
'@staticmethod '应该避免(如果你不需要这个类的话'@ classmethod')有利于使它成为一个模块级的函数。 – 2010-07-22 18:28:56
这是他们所谓的一种“代码味道”。它看起来像一个糟糕的设计。什么是想要这样做的原因? – 2010-07-22 19:47:21