gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-03 19:04:05 24 4
gpt4 key购买 nike

我使用 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__' 的用途。

关于python - 是否可以在 Python 类定义中使用导入的类方法而不运行导入文件中的所有代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15211540/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com