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对象包含到当前文件中来。

  

python的import语句的更多相关文章

  1. Python 模块化 import 语句介绍(一)

    用法: import 模块1[,模块2,模块3...] os 顶级模块os.path 非顶级模块as 相当于重命名 import 的本质: 解释器负责模块单独加载,单独初始化,生成一个模块对象,当前作 ...

  2. python from…import* 语句

    把一个模块的所有内容全都导入到当前的命名空间也是可行的,只需使用如下声明: from modname import * 这提供了一个简单的方法来导入一个模块中的所有项目.然而这种声明不该被过多地使用. ...

  3. Python import语句导入模块语法[转]

    Python import语句导入模块语法 社区推荐:掘金是国内最活跃的技术社区,我们每日有优质Python开发实例分享,海量python开源库推送.来掘金,和更多懂技术的小伙伴交流.   pytho ...

  4. Python中import的使用

    python中的import语句是用来导入模块的,在python模块库中有着大量的模块可供使用,要想使用这些文件需要用import语句把指定模块导入到当前程序中. import语句的作用 import ...

  5. Python 模块化 from .. import 语句介绍 (二)

    from语句 例一. from pathlib import Path,PosixPath print(dir()) print(Path) print(PosixPath) 运行结果: ['Path ...

  6. Python中的import语句

    Python中的import语句是导入一个文件,这条语句主要做三件事: 1 通过一定的方式,搜寻要导入的文件: 2 如果需要,就编译这个文件: 3 运行这个文件 但是,需要注意的是,所有这三个步骤,都 ...

  7. Python模块_import语句_from...import 函数名_from ... import *

    Python模块:包含了所有定义的函数和变量的文件,后缀名为 .py 将某些方法存放在文件中,当某些脚本 或 交互式需要使用的时候,导入进去. 导入的文件,就称为模块.导入之后就可以使用导入的文件的函 ...

  8. Python中from … import …语句

    from - import -语句可以让你从模块中导入一个指定的部分到当前模块

  9. python中import和from...import区别

    在python用import或者from...import来导入相应的模块.模块其实就是一些函数和类的集合文件,它能实现一些相应的功能,当我们需要使用这些功能的时候,直接把相应的模块导入到我们的程序中 ...

随机推荐

  1. PPT2010制作清明上河图动画

    原文: https://www.toutiao.com/i6492312556915393038/ 新建一个空白幻灯片 选择"插入"选项卡,"图像"功能组,&q ...

  2. AVD模拟器怎么配置上网

    转自:http://blog.csdn.net/you_jinjin/article/details/7228303 方法一 首先,Windows下,配置Adroid环境变量(Win7为例) 1.桌面 ...

  3. 读《疯狂Java讲义》笔记总结二

    1.变量分类图 2.通过实例访问静态变量(类变量) 3.静态导入 4.构造器 5.创建对象内存过程

  4. java匿名内部类概述

    1 package face_09; 2 /* 3 * 匿名内部类.就是内部类的简写格式. 4 * 必须有前提: 5 * 内部类必须继承或者实现一个外部类或者接口. 6 * 匿名内部类:其实就是一个匿 ...

  5. BUGKU-Misc 成果狗成果狗

    下载下来可以得到一张图片 成果真好看 放到kali里面用binwalk查看有没有隐藏文件,发现这里面有两张图片 然后可以拖到winhex或者010里面把两张图片分离出来,可以分离出1.jpg和54.j ...

  6. VUE3 之 多个 v-model 绑定及 v-model 修饰符的使用 - 这个系列的教程通俗易懂,适合新手

    1. 概述 洛克定律告诉我们: 当我们的目标很远大,远到我们都看不到终点时,放弃几率就会很大,就像跑马拉松比赛,由于时间长.距离长,很多选手都会选择在中途放弃. 其实有个好办法,就是拆分,把大目标拆分 ...

  7. Java线上问题排查神器Arthas实战分析

    概述 背景 是不是在实际开发工作当中经常碰到自己写的代码在开发.测试环境行云流水稳得一笔,可一到线上就经常不是缺这个就是少那个反正就是一顿报错抽风似的,线上调试代码又很麻烦,让人头疼得抓狂:而且deb ...

  8. AWS SAA_C01 考试分享。

    Saa-c01 经验分享! 序言1.介绍自己的情况,我是一个做后台开发的初级java程序员.还是处于在写业务逻辑的阶段,我对aws可谓是啥都不懂,纯种的小白,完全是从0基础开始学习的.希望分享一些我的 ...

  9. linux 权限命令行 xshell 切换用户

    一. 权限命令行 两种方式. 1.1 chown -R 指定的用户名, 权限的文件/文件夹 赋予这个用户的权限读写. /*1.0 权限命令行 1. chown -R 指定的用户名 权限的文件/文件夹 ...

  10. 如何使用 numpy 和 pytorch 快速计算 IOU

    前言 在目标检测中用交并比(Interection-over-unio,简称 IOU)来衡量两个边界框之间的重叠程度,下面就使用 numpy 和 pytorch 两种框架的矢量计算方式来快速计算各种情 ...