测试目录如下:
.
├── foldA
│ ├── init.py
│ └── moduleA.py
├── foldB
│ ├── init.py
│ └── moduleB.py
├── moduletree.py
├── moduletree.pyc
├── my_test.py
├── my_test.py~
└── parentmodule.py
同目录下引用 -- my_test.py 引用 moduletree.py
- moduletree.py 内容
#coding=utf-8
def moduletree_test():
print '同一目录下引用测试'
- mytest.py 内容
#coding=utf-8
import moduletree
def main():
print '引用测试:'
moduletree.moduletree_test()
if __name__ == '__main__':
main()
- 运行mytest.py
Output:
引用测试:
同一目录下引用测试
引用子目录下文件 -- my_test.py 引用 /foldA/moduleA.py
- /foldA/moduleA.py
#coding=utf-8
def moduleA_test():
print '引用了/foldA/下的moduleA的内容'
- my_test.py (第一种引用方式)
#coding=utf-8
import foldA.moduleA
def main():
print '引用测试:'
foldA.moduleA.moduleA_test()
if __name__ == '__main__':
main()
- my_test.py (第二种引用方式)
#coding=utf-8
from foldA import moduleA
def main():
print '引用测试:'
moduleA.moduleA_test()
if __name__ == '__main__':
main()
- 两次运行my_test.py
Output:
引用测试:
引用了/foldA/下的moduleA的内容
同级子目录引用 -- /foldB/moduleB.py 引用 /foldA/moduleA.py
- /foldA/moduleA.py内容
#coding=utf-8
def moduleA_test():
print '引用了/foldA/下的moduleA的内容'
- /foldB/moduleB.py
#coding=utf-8
import sys
sys.path.append("..") # 回退到上一级目录
import foldA.moduleA
def moduleB_test():
print '/foldB/moduleB.py引用了:'
foldA.moduleA.moduleA_test()
if __name__ == '__main__':
moduleB_test()
- /foldB/moduleB.py 第二种写法
#coding=utf-8
import sys
sys.path.append("..") # 回退到上一级目录
from foldA import moduleA
def moduleB_test():
print '/foldB/moduleB.py引用了:'
moduleA.moduleA_test()
if __name__ == '__main__':
moduleB_test()
- 两次运行/foldB/moduleB.py
Output:
/foldB/moduleB.py引用了:
引用了/foldA/下的moduleA的内容
子目录引用父目录 -- /foldB/moduleB.py引用/parentmodule.py
- parentmodule.py内容
#coding=utf-8
def parentmodule_test():
print '引用了/parentmodule.py的内容'
- /foldB/moduleB.py
#coding=utf-8
import sys
sys.path.append("..") # 回退到上一级目录
import parentmodule
def moduleB_test():
print '/foldB/moduleB.py引用了:'
parentmodule.parentmodule_test()
if __name__ == '__main__':
moduleB_test()
- /foldB/moduleB.py 第二种写法
#coding=utf-8
import sys
sys.path.append("..") # 回退到上一级目录
from parentmodule import parentmodule_test
def moduleB_test():
print '/foldB/moduleB.py引用了:'
parentmodule_test()
if __name__ == '__main__':
moduleB_test()
- 两次运行/foldB/moduleB.py
Output:
/foldB/moduleB.py引用了:
引用了/parentmodule.py的内容
in a nutshell
-
非同级目录时,注意通过 (import sys)sys.path.append("调整当前目录的路径") 修改当前目录
-
注意 (import sys)sys.path.append("调整当前目录的路径") 修改的当前目录只对引入包产生影响,不会对文件读写路径产生影响
- 用from方法时,要么是from %% import *,或from %% import &&(具体函数或类)
2018.01.01(一个值得纪念的日子呀,新年快乐,要更好!!!)
网友评论