一、导入模块:
1、import 模块名
模块名.变量 模块名.函数 模块名.类
2、form 模块名 import 变量/函数/类
可以直接在代码中使用变量,函数,类。这样就不需要在前面带上一个模块名。
3、from 模块名 import *
导入该模块中所有的内容。
但是如果想限制获取的内容,可以在模块中使用__all__[ 想要获取的内容 ]
4、无论import还是from的形式,都会将模块内容进行加载。如果不希望其进行调用。就会用到__name__。在自己的模块里面__name__为:__main__,如果在其他模块中通过导入的方式调用的话:__name__为:模块名
文件夹和包的区别:文件夹一般存放非py文件,包放的是py文件。包里面必须有一个__init__.py文件。一个包中可以存放多个模块。
项目>包>模块>类/函数/变量
二、导入包:
1、from 包 import 模块
模块名.变量 模块名.函数 模块名.类
2、from 包.模块 import 变量/函数/类 (特别适合跨包的导入或者在同一个包中A文件需要导入B模块的情况)
特例:如果同一个包中A文件导入B模块的情况,可以在A文件中简写为:from .B import 变量/函数/类。但是可能会报错误,与包中独特的__init__.py文件的作用有关。
3、from 包.模块 import *
三、__init__.py文件
当导入包的时候,默认调用__init__.py。
作用:1、当导入包的时候,把一些初始化的函数,变量,类定义在__init__.py文件,使用的时候只需要通过包名.变量/函数/类就可以调用。
2、from 模块 import * 表示可以使用模块里面的所有内容,如果没有定义__all__,所有的都可以访问,但是如果添加了__all__,只有__all__=[ ]列表中的内容才可以访问。
from 包 import * 表示该包中的模块是不能访问的,需要通过在__init__.py文件中定义__all__= [ ] ,列表中放入你要访问的该包下的模块。