Python 模块A(import和from import的比较)

模块的四种形式

  1. 自定义模块,例如自己定义的common.py就叫common模块
  2. 内置模块:python解释器自带的,不需要安装
  3. 第三方模块:需要自己安装,13万个库,无所不能,写库(弄得更简单)
  4. 包—>含有__inti__.py的文件夹,一种特殊的模块(解决了一个问题)

注意:2和3的模块会用就可以了,但是1和4模块需要掌握

import 实现原理

例如 from time

  1. 在内存中生成一个叫做time的名称空间
  2. 运行time.py文件,然后把time.py文件内的名称空间放入time的名称空间内
  3. 把time的名称空间指向import和from….import.py(当前导入time模块的文件)的名称空间

使用import time导入的时候,使用方法只能time.方法名( ),不能直接方法名

注意:

  1. 当解释器遇到import语句,如果模块在当前色搜索路径就会被导入(搜索路径是一个解释器会先进行搜索的所有目录的列表)。需要把import命令放在代码的顶端
  2. 一个模块只会被导入一次,不管你执行了多少次import

from ….import实现原理

例如 from time import gmtime

  1. 在内存中生成一个叫做time的名称文件
  2. 运行time.py文件,然后把time.py文件内的名称空间放入time的名称空间内
  3. 把gmtime方法指向import和from….import.py(当前导入time模块的文件)的名称空间内

可以直接使用方法() 来使用相关方法

from…import*

​ 既可以只使用方法名加括号使用模块里的方法,还可以使用所有的方法,例如:from math import *, 可以一次性引入模块中的所有东西 但是不应该频繁使用,有可能会造成冲突,例如用math下的power方法,power(),有可能你在后面自己定义了一个叫power()的函数,这样调用就会有问题

模块的搜索路径

1. 先从内存中找


from m2 import y
import time
time.sleep(10)

print(y)

# 在sleep的10s内删除了m2,但是依然能运行,


2. 从内置模块里面找


from time import time
print(time)
3. 自定制模块

	就是在自己定义完的模块里面开始找
4. 环境变量


#项目的执行文件中一定要弄一个环境变量,将模块所在的目录包含在环境变量中

'''
例如我写一个模块test.py,里面有方法f1,路径是D:模块
那就应该使用下面这句话
'''

import sys
sys.path.append(r'D:模块')


import xxx 和 from xxx import xxx的比较

戳这 ==> import 和 from xxx import xxx

原文地址:https://www.cnblogs.com/michealjy/p/11358551.html