千锋教育-做有情怀、有良心、有品质的职业教育机构

pythonimport是怎么实现的?

来源:千锋教育
发布时间:2023-11-10 23:30:50
分享

基本概念:

模块(module):其实就是一个py文件,里面定义了各种变量,函数,类。

模块除了内建模块(可以用过dir(__builtins__)查看有哪些内建函数),就是非内建模块,这一部分模块就需要用import导入。非内建模块经常需要按照第三方库,一般第三方模块在"安装路径\Python\Python35\Lib\site-packages"目录下。

包(package):一个有层次结构的文件目录,里面包含了模块和一些子包,要求包中必须带有一个__init__.py文件。

导入方法:

importmodule_name

frommodule_nameimportmodule_element

不难理解,该过程把module_name.py文件的全部内容加载到内存,把变量类型为’module‘赋值给当前模块的同名变量。

在导入模块时。模块所在文件夹将自动生成一个对应的__pycache__\module_name.cpython-36.pyc文件

怎么加载?——加载方式和用法

方式:

1.importpackage

读这个包的__init__.py,也就是说导入包的本质是执行包下面的__init__.py文件,执行结束后会包名的目录下生成一个"__pycache__/__init__.cpython-36.pyc"文件。

2.importmodule

读整个模块的内容

3.importpackage1.package2.package3.module4

package读取__init__.py,module读取整个模块内容,按顺序读

注意:因为package是读取__init__.py,所以调用的时候必须在__init__.py有引用的东西才能调用,否则会报错。

从哪里加载?

对于python来说,所有被加载到内存的模块都是放在sys.modules里面,所以执行import时会首先去该列表中查询是否已添加。如果已经在sys.modules中,那就简单了,只需要将该module的name添加到我们正在调用该module的本地空间中。如果还没有放在sys.modules中,就需要在sys.path所有路径的目录中去按顺序查找该模块的文件,这些文件一般后缀为".py"、".pyo"、".pyc"、".pyd"、".dll",找到这些模块后就可以将这些模块添加到sys.modules中,再将modulename导入到本地。

以上内容为大家介绍了Python培训之import是怎么实现的?,希望对大家有所帮助,如果想要了解更多Python相关知识,请关注IT培训机构:千锋教育。

声明:本站部分稿件版权来源于网络,如有侵犯版权,请及时联系我们。

相关推荐

  • python偏函数如何理解 python偏函数如何理解1、偏函数,是对原始函数的二次封装,是将现有函数的部分参数预先绑定到指定值,从而获得新的函数。2、定义偏函数,需要使用partial关键字(位于functools模块中。语法
  • python字符串字面量是什么 1、Python使用单引号(')、双引号(')、三重单引号('''')和三重双引号(""")来表示字符串字面量。2、字符串字面量需要使用相同类型的引号。
  • python__new__()和__init__()有什么区别? 在python中,__new__()不是一定要有,只有继承自object的类才有,该方法可以return父类(通过super(当前类名,cls).__new__())出来的实例,或者直接是object
  • pythonimport是怎么实现的? 基本概念:模块(module):其实就是一个py文件,里面定义了各种变量,函数,类。模块除了内建模块(可以用过dir(__builtins__)查看有哪些内建函数),就是非内建模块,这一部分模块就需要
  • pythonpython是如何编译运行的 这里的解释执行是相对于编译执行而言的。我们都知道,使用C/C++之类的编译性语言编写的程序,是需要从源文件转换成计算机使用的机器语言,经过链接器链接之后形成了二进制的可执行文件。运行该程序的时候,就可
  • pythonPython可以用来做什么? Python技术可做web开发很多人只知道Java、PHP可做web开发,但对于Python也能做web开发却知之甚少。很多人可能不知道,Python其实是和互联网一起长大的。作为动态语言,并且具有更