Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 干涸复制方法的类_Python - Fatal编程技术网

Python 干涸复制方法的类

Python 干涸复制方法的类,python,Python,我有各种不同的课程Class1,Class2,Class3,等等。所有这些课程都包含以下内容: def showName(self): openWindow() print self.name 例如: class Class1: # SOME CODE def showName(self): openWindow() print self.name # SOME MORE CODE 在一个单独的文件中定义一次showName

我有各种不同的课程
Class1
Class2
Class3
,等等。所有这些课程都包含以下内容:

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

class Class1:
    # SOME CODE

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

    # SOME MORE CODE
在一个单独的文件中定义一次
showName
并将其导入到
Class1
Class2
Class3
等中的最佳方法是什么?

由此派生:


或者将其作为一个单独的函数,以防您打算
name
成为公共成员。

larsmans提出的mixin类思想是实现这一点的标准方法。另一种方法是将函数放入另一个模块中,并将其导入到每个类定义中:

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

您的电话询问这是否比多重继承更清晰。

谢谢!(笑维基百科的移动版。)一旦我有了mixin,我该如何将它“混合回”原来的类?@Randomblue:只要让
Class1
和朋友从
NameShowMixin
衍生出来就行了。像这样编写良好的mixin可以安全地用于多重继承。
class Class1(object):
    from mixins import showName
    # other definitions here