在编写比较大的程序或团队协同工作时,常常会用到两个.py程序之间的相互调用和传递参数,我把自己理解的一个方法写一下。
首先要求pycharm已经安装了sys库,已知sys.argv是传递参数的核心。
import sys
from PyQt5.QtWidgets import QApplication,QWidget#这个库是第三方库,实现一个窗口UI
class Example(QWidget) :#他是继承自QWidget
def __init__(self):
super().__init__()
self.initUI()#构造函数中调用子类的方法initUI()
def initUI(self):
self.resize(350,350)#创建窗口
self.show()
print('第一次')
if __name__ == '__main__':#判断是不是在这个.py下调用的本程序
app = QApplication(sys.argv) #sys.argv 是一个从程序外部获取参数桥梁
ex = Example()#创建一个子类对象,调用构造函数
print('第二次')
sys.exit(app.exec_())#程序退出
关键点:
if name == ‘main’:
判断是不是这个.py下调用的这个函数,如果是别的程序调用的这个.py,则不会执行if语句
但执行这个.py,会出现“第一次”“第二次”
import pyqt5_11_0 #导入自己写的.py文件
import sys
app = pyqt5_11_0.QApplication(sys.argv)#sys.argv 是一个从程序外部获取参数桥梁
print(sys.argv)
ex = pyqt5_11_0.Example()
sys.exit(app.exec_())
关键点:
app = pyqt5_11_0.QApplication(sys.argv)
这句可以pyqt5_11_0.QApplication()是因为,在pyqt5_11_0的上面已经导入了PyQt5.QtWidgets,所以这个.py不写也可以点出来。
执行这个.py只会出现“第一次”,说明执行了整个pyqt5_11_0.py,但是if语句里面没有执行