干掉复制方法的类

时间:2012-01-18 14:31:12

标签: python

我有各种类Class1Class2Class3等等,所有这些内容都包含以下内容:

def showName(self):
   openWindow()
   print self.name

例如:

class Class1:
    # SOME CODE

    def showName(self):
       openWindow()
       print self.name

    # SOME MORE CODE

在单独的文件中将showName定义一次并将其导回Class1Class2Class3等等的最佳方法是什么?

2 个答案:

答案 0 :(得分:4)

mixin得出:

class NameShowMixin(object):
    def showName(self):
        openWindow()
        print self.name

如果您打算name成为公共会员,请将其设为单独的功能。

答案 1 :(得分:2)

larsmans提出的mixin类思想是规范的方法。另一种方法是将函数放在另一个模块中并将其导入到每个类定义中:

class Class1(object):
    from mixins import showName
    # other definitions here

您是否比多重继承更清楚。