包:可以理解为文件夹
模块:.py文件
类:包含函数、变量。函数和变量算作类里的具体组恒部分,类的特性
包与模块
1. 命名空间:包名.模块名 (区分两个包下同名的模块)
2. 包下面还可以有子包,子包可以与模块同级
3. 包可以理解为文件夹,但文件夹不一定是包,若要使文件夹表现为包,必须在这个文件夹下新建一个名为“__init__.py”的文件。里面内容可以为空,不能普通的进行命名空间调用
模块之间的调用
# 导入test文件夹下的a.py模块,别名test import tests.a as tests # 导入当前目录下的working.py,可以使用working.变量名或者方法名,使用working.py文件中所有的变量 import working print(tests.names) print(working.a)
第二种导入方法
# 从tests文件夹下的a.py导入names变量 from tests.a import names # 从tests文件夹下的a.py导入指定的一些变量 from tests.a import a,b,c,e # 从tests文件夹下的a.py导入所有的变量 from tests.a import * # 从当前目录working.py导入a变量 from working import a print(names) print(a)
两者区别:
import导入的是模块
from 导入的是具体的变量
设置需要导出的模块
例如一个模块,我们不可能把所有的变量都导出去,只需要导出部分变量
# 设置需要导出的值 __all__ = ['names', 'age'] names = 'a.py' b = 5 age = 18
这样在导入这个模块的时候,我们只能使用被导出的变量
__init__.py文件作用
当一个包被导入的时候,__init__.py会自动执行,例如新建一个文件夹tests,在tests文件夹中新建a.py和p.py
在init.py中写入需要被导入的模块
//__all__设置被导出的模块 __all__ = ['a', 'p'] print(1)
以上代码是,在引入test包的时候会自动导出a.py,p.py中的变量
from tests import * print(a.names) print(p.age)
__init__.py作用是当一个文件夹当做包时候的时候,如果需要自动导出一些模块中的变量,可以定义在__init__.py里面,这样当我们引入包的时候,就会自动执行__init__.py文件里面的代码
我们也可以把经常需要导入的模块,在__init__.py中导入,这样就不需要在每个文件中都导入一边了
参考文章:https://www.jianshu.com/p/b233b158ca51?utm_source=desktop&utm_medium=timeline
发表评论
侧栏公告
寄语
譬如朝露博客是一个分享前端知识的网站,联系方式11523518。
热评文章
标签列表
热门文章
友情链接