linux系统下自定义python程序的跨文件夹调用

自定义模块调用

    我们在进行编码设计的时候,往往需要自定义一些模块,其他程序可以调用这些模块,方法和原理其实和内置系统模块调用是差不多的。不过自定义模块的话有几种位置关系。【实验环境:py3.6】

1 同一文件夹下:

在 test 文件夹下有 test1.py 和 test2.py

test/

-------------/ test1.py

-------------/test2.py

如果在test1.py中需要引用test2.py方法,此种情况可以直接使用 import test2,就可以进行 test2.*() 【*为test2.py中的某个函数】

2 跨文件夹引用(父子文件夹):

test/

-------------/ test1.py

-------------/test2.py

-------------/test1/test1_1.py

-------------/test1/test1_2.py

则从从上面的目录结构可以清晰知道,这里我在test文件夹下新建了 test1文件夹,test1文件夹下又有 test1_1.py, test1_2.py

这是如果 test1_1.py 与 test1_2.py 相互引用 仍和 【情况1】一样。如果 test1.py或者 test2.py 想要引用 test1_1.py 或者 test1_2.py 。则需要在 test1 文件夹下新建一个 __init__.py 文件,该文件可以为空。目录结构如下:

test/

-------------/ test1.py

-------------/test2.py

-------------/test1/test1_1.py

-------------/test1/test1_2.py

-------------/test1/__init__.py

另外由于,从目录结构可以看出test1.py和 test2.py与 test1 文件夹同级,在test1.py 或者 test2.py中调用 test1_1.py 或者 test1_2.py 时 可以直接使用  from test1 import test1_1,test1_2 ;

如果从 test1_1.py,test1_2.py 调用 test1.py 或者 test2.py 需要使用,注意 test文件夹下不用写__init__.py  

import sys

sys.path.append('..')

import test1,test2

【运行时侯注意是在 test1文件夹下,因为 sys.path.append(‘..’) 是相对路径】

3 跨文件夹引用(子子同级文件夹):

 这种引用是工程里最常用的引用方式。

test/

-------------/ test1.py

-------------/test2.py

-------------/test1/test1_1.py

-------------/test1/test1_2.py

-------------/test1/__init__.py

------------/test2/test2_1.py

-------------/test2/test2_2.py

-------------/test2/__init__.py

test1和test2均为test文件夹的子文件夹,test2_1.py 与 test1_1.py ,test1_2.py 进行互相引用时,需要使用:

import sys

sys.path.append('..')

from test1 import test1_1,test1_2

【运行时侯注意是在 test2文件夹下,因为 sys.path.append(‘..’) 是相对路径】

 

希望对您有帮助!

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值