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__)

运行结果:

猜你喜欢

转载自www.cnblogs.com/bluesea-zl/p/12209819.html