Python:Import模块调用总结

Python 模块基本情况【详见

  • import
    直接引入模块
  • from … import
    从一个模块中导入一个指定的部份到当前命名空间中
  • from … import*
    把一个模块中的所有内容全部导入到当前命名空间中
    :一般不推荐最后一种全部导入的方式,存在潜在的危险。如,同时导入module1和module2的所有内容,加入这两模块中均含有一个foo()函数,则当程序中执行如下代码时:
`foo()`

此时无法确定该foo()函数是属于哪个模块中的。

Python中的包

包就是文件夹,但该文件夹下必须存在_init_.py文件, 该文件的内容可以为空。 其用于标识当前文件夹是一个包。
只有包含_init_.py文件的模块才能够被调用

文件目录一览

目录一览

同级目录调用

file1与file2为同级目录
dataProcess.py、kmeans.py及kmeans-test.py为同级目录

- 同一子目录下

(一)在同一file2文件目录下,当需要在kmeans-test.py中调用kmeans.py中的method()方法时

# kmeans-test.py
import kmeans

kmeans.method()
# kmeans-test.p
from kmeans import method

method()

- 不同子目录下

(二)分别在file1与file2中,当需要在dataProcess.py中调用kmeans.py中的method()方法时

# dataProcess.py
# 跳转目录
import sys
sys.path.append('..')  # 1.回到上一级目录file1
from file2 import kmeans  # 2.再从file1的同级目录file2下去寻找kmeans.py模块

kmeans.method()

非同级目录调用

file2与file3为非同级目录
file3与kmeans-test.py为同级目录
(三)需要在file2的kmeans-test.py中调用file3的kmeans1.py的method()方法时

# kmeans-test.py
from file3 import kmeans1

kmeans1.method()

如果直接import kmeans1就会失败,因为kmeans-test.py与kmeans1.py不在同一级目录中,需要通过其同级目录file3来from寻找到kmeans1.py模块(与情况(一)中第二种调用方法本质相同)
:各级文件目录、py文件及py文件中的方法均可视作一个模块来讨论,目录级别(路径)问题才是影响调用是否成功的关键

成功调入的关键两点

  1. init.py
  2. 调用的搜索路径正确(sys.path.append(‘路径’))

参考学习资料

Python:sys.path详细介绍
Python:ImportError:No module named ‘XXX’
Python模块[跨目录]调用总结

不吝赐教 ~

发布了8 篇原创文章 · 获赞 3 · 访问量 649

猜你喜欢

转载自blog.csdn.net/lehek/article/details/104129570