了解python模块and模块导入的几种方式

242 篇文章 10 订阅
216 篇文章 2 订阅

概念

Python 模块是一个以 .py 结尾的 Python 文件,包含了 Python 对象定义和Python语句。每一个模块在python里都被看做是一个独立的文件。模块可以被别的程序引入,以使用该模块中的函数等功能,这也是使用 python 标准库的方法。
模块导入
模块可以导入其它模块,习惯上把所有 import语句放在模块的开头(不要求)。模块导入的方式有几种:

方式一:使用 import 语句来引入模块

import module1[, module2[,... moduleN]]

# 例如导入一个path模块
import path

如果你依然在编程的世界里迷茫,
不知道自己的未来规划,
对python感兴趣,
这里推荐一下我的学习交流圈:895 797 751,
里面都是学习python的,

直接使用关键词import,后面跟具体的模块名称,就可以导入某一个模块。同一个模块不管执行了多少次import,都只会被导入一次,以防止模块被一遍又一遍的执行。
模块引入好后,如果要调用模块中的函数,必须如下:
模块名.函数名

方式二:使用from…import 语句来引入模块

from modname import name1[, name2[, ... nameN]]

# 例如要导入pprint模块的pprint
from pprint import pprint
  • 在使用import语句导入模块时会将整个模块引入进来,而使用from...import 语句则是从模块中导入一个指定的部分到当前命名空间中。如上面代码中则只会导入pprint模块中的pprint函数,其他函数并不会导入。
  • import语句引入模块后,如果需要使用模块里的函数方法,则需要加上模块的限定名字,而from…import语句则不用加模块的限定名字,直接使用其函数方法;
# 第一种方式
import pprint
pprint.pprint("hello world")

# 第二种方式
from pprint import pprint
pprint("hello world")

方式三:使用from…import 语句来引入模块*

from…import*语句表示把一个模块的所有内容全都导入到当前的命名空间。

from modname import *

  • 在多数情况下,Python程序员都不会使用这个功能,因为它在解释器中引入了一组未知的名称,而它们很可能会覆盖一些你已经定义过的东西。
  • 注意通常情况下从一个模块或者包内调入 * 的做法是不太被接受的, 因为这通常会导致代码的可读性很差。不过,在交互式编译器中为了节省打字可以这么用。
模块的好处
  1. 大大提高了代码的可维护性;
  2. 代码不必从零开始,一个模块编写完毕之后,其他模块可以直接调用,节约了工作时间;

避免函数名称和变量名称重复,在不同的模块中可以存在相同名字的函数名和变量名,但是尽量不要和系统内置的模块名称重复;

__name__属性
一个模块被另一个程序第一次引入时,其主程序将运行。如果我们想在模块被引入时,模块中的某一程序块不执行,我们可以用name属性来使该程序块仅在该模块自身运行时执行。
每个模块都有一个name属性,当其值是’main’时,表明该模块自身在运行,否则是被引入。

if __name__ == "__main__":
    print("模块自身在运行")

模块搜索路径
搜索路径是由一系列目录名组成的,Python解释器就依次从这些目录中去寻找所引入的模块。当一个模块被导入的时候,模块的搜索路径为:

  1. 程序的根目录
  2. PYTHONPATH环境变量设置的目录
  3. 标准库的目录
  4. 任何能够找到的.pth文件的内容
  5. 第三方扩展的site-package目录
  • PYTHONPATH 变量
    PYTHONPATH是Python中一个重要的环境变量,用于在导入模块的时候搜索路径,可以通过如下方式访问:

import sys
sys.path

作为环境变量,PYTHONPATH 由装在一个列表里的许多目录组成。PYTHONPATH 的语法和 shell 变量 PATH 的一样。
Windows 系统,典型的 PYTHONPATH 如下:
set PYTHONPATH=c:\python37\lib;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值