我将PyMOL分子查看器用作较大程序的子集,为了便于阅读,我将文件分解成这样……

### command1ClassFile.py

class command1Class():
    def command1(self):
        print "do action 1, this requires pymol functions"

### command2ClassFile.py

class command2Class():
    def command2(self):
        print "do action 2, this also requires pymol functions"

### mainModule.py

import command1ClassFile, command2ClassFile

class commandsClass(command1Class, command2Class):
    pass


class guiClass(parentClass, commandsClass):
    def onLeftClick(self):
        self.command1()

    def onRightClick(self):
        self.command2()

# this imports the module as well as launching the program, unfortunately
import pymol
pymol.finish_launching()


我不能只在其他文件的开头添加“ import pymol”,因为那样会多次启动该程序。我可以仅使用一个.py文件来解决此问题,但这会导致源文件过大。

我没有在PyMOL邮件列表上引起任何人的兴趣,所以我希望这方面还有其他方法。如果没有,是否有更好的方法分解代码?我习惯于被C ++中的头文件宠坏,Python项目的体系结构让我很难正确处理。

编辑:对于不同的情况,是否以这种方式在文件和伪编译类之间使用多重继承是一种使用复杂方法构造python项目的好方法?

最佳答案

如果我正确理解了这个问题,那就是if __name__ == '__main__'的目的。

09-15 19:02