python的import语句
2024-10-19 22:43:32
1、import作用 |
import跟C/C++中的#include作用有点类似,都是为了调用定义在其他文件中的变量、函数或者类,但实现的区别很大。
C/C++中如果a.cpp include了b.h那么b.h这个文件就原样加到a.cpp文件中去了,这样在b.h中的变量、函数、类就在a.cpp文件中声明了,所以在a.cpp中能够访问。注意,这里的添加是C/C++原文件的添加。
python中如果a.py import了b.py那么不是把b.py的原代码加到a.py中,而是把b.py编译为一个module类型的对象,保存到b.pyc文件中,然后读取到内存中。在a.py中可以调用module对象中的变量、函数、类。其中b.py中的普通语句会在编译的时候被直接执行。
下面是一个import一个module(更应该说是include一个文件,将文件转换成module对象包含进来。)
module_name.py
print("include module") name = "jeck" def func():
print("hello world") class test():
def func(self):
print("class hello world")
测试文件
import module_name # 将module_name.py编译成module对象包含进来 print(module_name.name) # 调用module对象中的变量
module_name.func() # 调用module对象中的函数
a = module_name.test() # 例化module对象中的类。
a.func()
输出
include module # 编译时候直接执行了普通语句
jeck # 调用name变量
hello world # 调用func函数
class hello world # 调用test类的func函数
2、import模块的搜索顺序
import module_name
(1)、先去build_in的模块中去查找
(2)、build_in中没有找到,就去sys.path中查找,sys.path的路径包括:当前目录、安装python时的依赖位置、环境变量中的PYTHONPATH
如果要引用直接定义的module,要不把文件放在调用文件相同的目录中,要么把module的存放路径加入到sys.path中,sys.path是一个列表,可以这样添加路径
sys.path.append("/home/ydh/py/lib/")
lib目录为存放自己定义module的路径。
3、import包
import包是import一个目录,然后编译目录下的__init__.py文件,将__init__.py文件编译成一个module对象包含到当前文件中来。
最新文章
- fzf by ruby
- 线程处理模型 由于 SynchronizationContext 引起的死锁问题解决
- linux 关于用户与组的操作
- Bootstrap carousel轮转图的使用
- CSS:权重和层叠规则决定了其优先级
- 【android学习4】Eclipse中Clean作用
- VBA对象模型(1)
- Mapreduce执行过程分析(基于Hadoop2.4)——(一)
- Win7 IE故障:APPCRASH,d3d9.dll,c0000005
- Lucene的多线程访问原则和同步,锁机制
- [转]使用sklearn进行集成学习——理论
- POJ-1256 next_permutation函数应用
- [JLOI 2015]装备购买
- numpy C语言源代码调试(三)
- 查看selenium API
- Step by Step Guide on Yanhua ACDP Clear BMW EGS ISN
- MyBatis 别名标签 &; sql的复用
- TensorBoard 简介及使用流程【转】
- appium简明教程(8)——那些工具
- Maven 本地打war包