模块(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后缀。

  from module import names  可以直接从模块中导入名字到符号表,但模块名字不会被导入。
  from module import *     可以把模块中的所有名字全部导入,除了那些以下划线开头的名字符号。不建议使用,不清楚导入了什么符号,有可能覆盖自己定义的东西

  pyc文件是py文件编译成的字节码文件,在导入一个模块的时候会自动在py文件的目录下生成pyc文件,pyc主要为了可重用模块的效率,因此,只有使用import或者from ... import ... 导入一个模块的时候才会生成pyc。导入的模块被认为是可重用的模块,而直接执行一个py文件时是不会生成pyc文件的。

Python中的import的更多相关文章

  1. python中的import,reload,以及__import__

    python中的import,reload,以及__import__ 分类: UNIX/LINUX C/C++LINUX/UNIX shellpython2013-04-24 20:294536人阅读 ...

  2. Python中的import语句

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

  3. 浅谈python中得import xxx,from xxx import xxx, from xxx import *

    在python中import跟from import都是用来导入的,但是导入的机制不同 1.import xxx:导入模块,或者文件夹,对于调用模块或者文件夹中子模块的变量或者函数,需要使用" ...

  4. Python中的import和from import

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

  5. python中的import一个注意事项

    import math def foo(): import math x = math.pi # 如果math在下面import会出错,因为import是个写的过程(添加到sys.modules中), ...

  6. Python中的import,from...import以及模块、包、库的概念

    首先,说明一下,我使用的是python3.6.3win32版本,使用的IDE是pycharm2017社区免费版. 刚开始接触python编程不久,有很多概念都不是特别清楚,但是我觉得既然选择,尽自己最 ...

  7. Python中模块import的使用案例

    1 import test # 导入test模块 2 3 print(test.a) # 使用"模块.变量"调用模块中的变量 4 5 test.hi() # 使用"模块. ...

  8. Python中from … import …语句

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

  9. Python中import的使用

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

随机推荐

  1. go变量赋初值

    package main import "fmt" func variableinitial(){ , var s string="abc" fmt.Print ...

  2. Python的函数参数传递

    a = 1 def fun(a): a = 2 fun(a) print a # 1 a = [] def fun(a): a.append(1) fun(a) print a # [1]

  3. jquery作业 教授答案

    http://www.cnblogs.com/qianjinyan/p/8961086.html 题目要求: 1. 通过jquery动态的创建一个表格,随机生成(id自增,name随机2-3个中文汉字 ...

  4. C#学习 day1 c#基础

    C#是一门编程语言,为什么我今天开始学C#了,下学期有门C#的课,以及有一个经验丰富的老学长正在做C#项目,由于之前学过C++和C基础,所以,C#的基础部分我查看文档来尝试能否自学归纳,而不是一直依靠 ...

  5. 小波变化库——Pywalvets学习笔记

    笔记 术语(中英对照): 尺度函数:scaling function(又称父函数 father wavelet) 小波函数:wavelet function(又称母函数 mother wavelet) ...

  6. 《剑指offer》第七题(重要!重建二叉树)

    文件一:main.cpp // 面试题:重建二叉树 // 题目:输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树.假设输 // 入的前序遍历和中序遍历的结果中都不含重复的数字.例如输入前序遍历 ...

  7. Android蓝牙通信功能开发

    1. 概述 Bluetooth 是几乎现在每部手机标准配备的功能,多用于耳机 mic 等设备与手机的连接,除此之外,还可以多部手机之间建立 bluetooth 通信,本文就通过 SDK 中带的一个聊天 ...

  8. 用docker部署flask+gunicorn+nginx

    说来惭愧,写了好几个flask django项目都是在原型阶段直接python app.py 运行的,涉及到部署用nginx和gunicorn 都是让别人帮我部署的,据说好像说很麻烦的样子,我就没自己 ...

  9. 在浏览器外打开PDF文档

    One function you might find annoying with PDFs and PDF Readers is that when you click on a link to a ...

  10. SpringBoot 中常用注解@Controller/@RestController/@RequestMapping介绍

    原文 SpringBoot 中常用注解 @Controller/@RestController/@RequestMapping介绍 @Controller 处理http请求 @Controller / ...