在开发稍大规模python程序时,就不能将所有*.py源文件放到一个文件夹里管理了。
特别是当一个py文件调用另一个py文件中定义好的函数或类时,需要根据调用和被调用文件所在目录的不同而采取不同方式。
同时在使用pyinstaller打包为exe时,也要注意参数的使用,此处有坑,搞了一天才弄好,哎
函数print_name和类custom_class在source.py中定义:
'''
自定义定义函数和类
'''
def print_name(name):
print('welcome '+ name)
class custom_class():
def __init__(self, name):
self.name = name
def show_name(self):
print('hello '+ self.name)
在ui.py中使用上面的的函数和类,可以分为三种典型情况:
- source.py 和 ui.py 在同一个文件夹内
- source.py 在ui.py所在目录的下级子目录中
- source.py 在ui.py分别在两个平级文件夹内
Case1:source.py 和 ui.py 在同一个文件夹内
这种情况最简单,也是学习python过程中最常用的目录结构,文件结构如下,项目名称为PROJECT1,新建同名PROJECT1文件夹
- PROJECT1
- source.py
- ui.py
这种情况可以直接import source,ui.py完整代码如下:
'''
ui.py和source.py文件在同一文件夹
'''
import source
# 函数引用
source.print_name("Lily")
# 类的引用
OBJ = source.custom_class('Mike')
OBJ.show_na