前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python中的import

python中的import

作者头像
py3study
发布2020-01-13 10:29:06
6050
发布2020-01-13 10:29:06
举报
文章被收录于专栏:python3

python中的import操作有点类似于C语言中的#include,但又有很大的不同。在c语言中,#include是编译前将另一个文件包含进当前文件中。在python中导入并非只把一个文件文本插入另一个文件而已。

导入其实是运行时的运算,程序第一次导入时会执行三个步骤。

1 找到模块文件

2 在需要时编译成位码

3执行模块的代码来创建其所定义的对象

这三个步骤只有在模块第一次被导入的时候才会执行,之后导入相同模块的时候会跳过这三个步骤,而只提取内存中所加载的模块对象。

python会把载入的模块存储到一个名为sys.modules的表中,导入模块时会检查这个表,如果模块在表中存在则不会启动上面的三个步骤。

import语句后所引用的模块文件没有文件路径,也没有文件后缀。那python是如何找到模块并将其导入文件的呢?

原来python有一个sys.path系统变量,这个变量存储了import语句的搜索路径。这个搜索路径主要由四个部分组成:

1 程序的主目录

2 PYTHONPATH目录

3 标准链接库目录

4 任何.pth文件的内容

import文件的后缀是刻意从import语句中省略的。python会在搜索路径中选择第一个符合导入文件名的文件。

此外 import还可以利用钩子程序让import在导入文件时做各种有用的事情。具体的钩子函数就是内置的__import__函数,具体用法见相关手册。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019/08/10 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云硬盘
云硬盘(Cloud Block Storage,CBS)为您提供用于 CVM 的持久性数据块级存储服务。云硬盘中的数据自动地在可用区内以多副本冗余方式存储,避免数据的单点故障风险,提供高达99.9999999%的数据可靠性。同时提供多种类型及规格,满足稳定低延迟的存储性能要求。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档