Python中的import
Posted 天道酬勤
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python中的import相关的知识,希望对你有一定的参考价值。
模块(module):用来从逻辑(实现一个功能)上组织Python代码(变量、函数、类),本质就是*.py文件。文件是物理上组织方式"module_name.py",模块是逻辑上组织方式"module_name"。
包(package):定义了一个由模块和子包组成的Python应用程序执行环境,本质就是一个有层次的文件目录结构(必须带有一个__init__.py文件)。
package:目录,包下面必须有一个__init__.py文件,否则只是一个单纯的目录,不算是一个包
module:py文件
导入方式有以下几种:
#①采用from...import方式
from 包绝对路径 from 模块py文件
from package.subpackage1 import foo1
from 模块 import 变量
from 包 import 子包
#②采用import方式
import package.subpackage1
import 模块
导入函数、变量、类只能使用from ... import ... 方式。
如果导入的是一个包而不是一个模块,则python引擎会去执行这个包的目录下的__init__.py,此时这个文件中可能是一些导入的语句,例如:
import Primitive, Graph2d, Graph3d,标红的三个都为模块的名字。
如果是模糊导入,例如:from Root.Pack1 import *,Pack1为一个包,则引擎会读取Pack1下的__init__.py文件,根据该文件里面的__all__变量导入相应的模块。
第一次导入一个模块时,模块中的程序会被执行一次,下一次再导入则不会再执行了。
模块在Python可理解为对应于一个文件。在创建了一个脚本文件后,定义了某些函数和变量。你在其他需要这些功能的文件中,导入这模块,就可重用这些函数和变量。一般用module_name.fun_name,和module_name.var_name进行使用。这样的语义用法使模块看起来很像类或者名字空间,可将module_name 理解为名字限定符。模块名就是文件名去掉.py后缀。
pyc文件是py文件编译成的字节码文件,在导入一个模块的时候会自动在py文件的目录下生成pyc文件,pyc主要为了可重用模块的效率,因此,只有使用import或者from ... import ... 导入一个模块的时候才会生成pyc。导入的模块被认为是可重用的模块,而直接执行一个py文件时是不会生成pyc文件的。
以上是关于Python中的import的主要内容,如果未能解决你的问题,请参考以下文章