Python全栈自动化系列之Python编程基础(模块和包)
一、模块
1)定义
模块:模块是一个Python文件,以.py结尾,包含了Python对象定义和Python函数
包:Python中的包就是一个包含一个__init__.py文件的目录(文件夹)
2)模块的作用
a.模块让你能够有逻辑地组织你的Python代码段
b.把相关功能的代码写到一个模块里面能让你的代码更好用,更易懂
c.模块能定义函数、类和变量,模块里也能包含可执行的代码
注意点:
①在进行模块导入的时候,会将导入的模块从上往下执行一遍
②模块导入时,同级目录导入,Pycharm有可能识别不了,会对代码进行标红(不代表报错)
解决方案:从项目目录下,一级一级往下导入
二、模块导入的方式
1)导入模块
import 模块名(注意,不能使用import 包名/文件夹)
2)导入模块中的函数或者变量
from 模块名 import 变量/函数 (注意,若一起导入函数或变量,可以使用逗号隔开)
3)导入时给导入内容起别名
from 模块 import 变量或函数 as 别名
from 文件夹.文件夹 import 模块 as 别名
4)不推荐使用
from 模块名 import * (导入所有的变量和函数)
from 文件夹.文件夹 import * (导入指定文件夹中所有的模块)
三、问题1:在进行模块导入的时候,会将导入的模块从上往下执行一遍,若有一部分代码在导入时不希望执行应该怎么做?
问题2:包里面的__init__.py有什么用?
问题1:可以是魔法变量(python内置的)
__name__: 如果直接运行文件(如果作为作为启动文件),那么文件的__name__的值为“__main__”
如果文件(模块)被导入,那么文件中的__name__的值就为模块名
__file__:代表当前文件所在的路径
示例:
def func():
print("python----func01")
a = 100
print("__name__的值",__name__)
# 这个条件只有在直接运行这个文件的时候才会成立,模块导入的时候这个条件不成立
if __name__ == "__main__":
print(a)
func()
print("__name__的值",__name__)
print("__file__的值", __file__)
运行结果: