模块导入

import导入模块,在模块调用时必须加上模块名.方法名()

例:

import time

time.time

优点:所有属性和方法都属于模块所在的名称空间,不会与当前名称空间产生冲突

缺点:加前缀调用麻烦

from 模块名 import 方法名

1.产生一个模块的名称空间

2.运行模块文件将允许过程中产生的名字都对到模块的名称空间中去

3.在当前名称空间中拿到一个名字,该名字与模块名称空间中的内存地址

例:

from time import time

time()

优点:不用加前缀

缺点:容易与当前名称空间混淆,如果当前空间中本身还有一个time,这个会造成覆盖。

循环导入:

​ 导入模块1时模块1中导入了模块2,且模块2中导入了m1,则造成了循环导入。

查看已经加载到内存中的模块:

import sys

print(sys.modules)

加载本地路径模块:

import sys

sys.path.append(r’文件绝对路径’)

import foo(加载的模块名)

包:

1.包就是一个包含有__init__.py文件的文件夹

2.为何要有包

​ 包的本质是模块的一种形式,包是用来被当做模块导入

​ 导入模块(包)的流程:

​ 1.产生一个名称空间

​ 2.运行包下的init.py(这里的init左右有两个下划线),将运行过程中产生的名字都丢到1的名称空间中

​ 3.再当前执行文件的名称空间中拿到一个名字mmm,mmm指向1的名称空间

​ import mmm #这里的mmm是一个文件夹,本质上是在导入mmm下的init.py

     #本质上把功能都写进init.py,可以直接调用。

本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!