前言
前不久,我在整理之前的烂尾项目(这是一个模块化的程序,分为主脚本main.py和一些模块Lib),有了一个意外发现。
正文
以前
之前,我的脚本写法非常常规,下面简述一下。
main.py
import sys
import os
import Lib
if __name__=="__main__":
Lib.module.hello()
Lib\module.py
import sys
import os
def hello():
print("Hello world!")
可是,问题来了。当main.py打包好之后,我还得把Lib还有sys和os一起放进去,程序显得很臃肿。
于是,这个解决办法出现了。
现在
废话不多说,上代码。
main.py
import sys
import os
import Lib
if __name__=="__main__":
Lib.module.package(sys,os)
Lib.module.hello()
Lib\module.py
sys=None
os=None
def package(p1,p2):
global sys
global os
sys=p1
os=p2
def hello():
print("Hello world!")
现在,问题就迎刃而解了。
原理
其实原理很简单,我通过package这个函数传递了sys和os两个包对象,那么打包后,module.py实际上是接收了包对象,而不是单另导入。
结语
到此结束,感谢你的阅读!