当前位置:   article > 正文

python 文件夹py文件相互引用_python 两个文件相互调用

python 两个文件相互调用

前言

我之前学过一些别的语言,例如Java,C#,JS。所以我上手python还是挺快的,毕竟语言一通百通。基本上都和C语言差不多。我写python优先考虑的是如何模块化地写程序,因为模块化以后好复用,把封装好的代码自己用就行了。

之前我解决了vscode如何打印文件名和行号的文件,现在解决python相互调用的问题。

Python文件相互调用

在这里插入图片描述

每个文件都有打印语句

print('我是Floder1的model1文件')
  • 1

主函数

print('我是主函数')
  • 1

文件路径

-Floder1:
	-model1.py
	-model2.py
-Floder2:
	-model3.py
	-model4.py
Main.py(主函数)
model5.py
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

情况一:同级文件

在这里插入图片描述

直接import就行了

import model5


print('我是主函数')


  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

打印结果

主函数旁的model5
我是主函数
  • 1
  • 2

情况二:非同级文件

上层调用下层

在这里插入图片描述
也是直接调用

import Floder1.model1


print('我是主函数')
  • 1
  • 2
  • 3
  • 4

打印结果

我是Floder1的model1文件
我是主函数
  • 1
  • 2

下层调用上层

在这里插入图片描述

import sys
# 将上级目录添加到文件路径中
sys.path.append('.')
import model5

print('我是Floder1的model1文件')
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

打印结果


主函数旁的model5
我是Floder1的model1文件
  • 1
  • 2
  • 3

Tips:sys.path.append(‘.’)是一个点还是两个点,我不清楚。我看网上是append(两个点),我测试了一下不行,得一个点

sys.path.append(‘.’)详细测试

我测试一下如果在引入别的文件会如何

import sys
# 将上级目录添加到文件路径中
sys.path.append('.')
import model5
import Main
import model2

print('我是Floder1的model1文件')
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

在这里插入图片描述

测试成功,在append之后引用同文件夹的文件,

同名测试

在这里插入图片描述
打印结果

Floder1里面的model5
我是主函数
  • 1
  • 2

测试结果是就近引入。

引入结论

sys.path.append(‘.’)这句话相当于添加了查找的路径,在多个文件夹中查找,如果有同名文件,则选择最近的那个

跨文件夹调用

在这里插入图片描述

import sys
# 将上级目录添加到文件路径中
sys.path.append('.')
from Floder2 import model3

print('我是Floder1的model1文件')
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

测试结果

我是Floder2的model3文件
我是Floder1的model1文件
  • 1
  • 2

总结

  • 同级引入。import model
  • 下级引入 from path import model或者import path.model
  • 上级引入 sys.path.append('path ') 添加搜索路径,如果有同名文件则找到最近的文件
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小小林熬夜学编程/article/detail/423421
推荐阅读
相关标签
  

闽ICP备14008679号