是否可以在Python类定义中使用导入的类方法而不在导入的文件中运行所有代码?

时间:2013-03-04 21:32:14

标签: python file import structure pymol

我使用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项目的好方法吗?

1 个答案:

答案 0 :(得分:1)

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