目录
- 前言
- python文件相互调用
- 情况一:同级文件
- 情况二:非同级文件
- 上层调用下层
- 下层调用上层
- 跨文件夹调用
- 总结
前言
我之前学过一些别的语言,例如Java,C#,js。所以我上手python还是挺快的,毕竟语言一通百通。基本上都和C语言差不多。
我写python优先考虑的是如何模块化地写程序,因为模块化以后好复用,把封装好的代码自己用就行了。
之前我解决了vscode如何打印文件名和行号的文件,现在解决python相互调用的问题。
Python文件相互调用
每个文件都有打印语句
print('我是Floder1的model1文件')
主函数
print('我是主函数')
文件路径
-Flodephpr1: -model1.py -model2.py -Floder2: -model3.py -model4.py Main.py(主函数) model5.py
情况一:同级文件
直接import就行了
import model5 print('我是主函数')
打印结果
主函数旁的model5
我是主函数
情况二:非同级文件
上层调用下层
也是直接调用
import Floder1.model1 print('我是主函数')
打印结果
我是Floder1的model1文件
我是主函数
下层调用上层
import sys # 将上级目录添加到文件路径中 sys.path.append('.') import model5 print('我是Floder1的model1文件')
打印结果
主函数旁的model5
我是Floder1的model1文件
Tips:sys.path.append(‘.’)是一个点还是两个点,我不清楚。我看网上是append(两个点),我测试了一下不行,得一个点
sys.path.append(&lsq编程客栈uo;.’)详细测试
我测试一下如果在引入别的文件会如何
import sys # 将上级目录添加到文件路径中 sys.path.append('.') import model5 import Main import model2 print('我是Floder1的model1文件')
测试成功,在append之后引用同文件夹的文件,
同名测试
打印结果
Floder1里面的model5
我是主函数
测试结果是就近引入。
引入结论
sys.path.append(‘.’)这句话相当于添加了查找的路径,在多个文件夹中查android找,如果有同名文件,则选择最近的那个
跨文件夹调用
import sys # 将上级目录添加到文件路径中QYNwCTseU sys.path.append('.'android) from Floder2 import model3 print('我是Floder1的model1文件')
测试结果
我是Floder2的model3文件
我是Floder1的model1文件
总结
- 同级引入。import model
- 下级引入 from path import model或者import path.model
- 上级引入 sys.path.append('path ') 添加搜索路径,如果有同名文件则找到最近的文件
以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程客栈(www.devze.com)。
精彩评论