模块

定义:就是一个以.py结尾的pyton文件

模块的导入 使用关键字import ,导入的是这个包,有时候不需要整个库,可以采用使用from/as用来取小名,即导入自己需要的库,形式如下:

# 举例所用的ModelA模块,即py文件
def add(x,y):
    return x+y

a = 3
b = 4

1.import 模块名

# 使用import导入模块
import ModelA
# 如何调用模块A 模块A.add()
ret = ModelA.add(3,5)
print(ret)

2.import 模块名 as 别名

# 第二种方式 使用取别名
import ModelA as ma
ret = ma.add(1,5)
print(ret)

3.from 模块 import 导入你想要的内容,其中import可以是一个变量 也可以是是一个函数

# 第三种方式
from ModelA import add
ret = add(0,5)
print(ret)

4.from 模块 import *

5.from 模块 import 子模块 as 别名

模块作用:

  1. 提高了代码可读性
  2. 不用从0开始写代码
  3. 避免同一模块的命名重复问题

模块内置变量 :

使用dir()函数查看

重要内置变量:

1.--name--:小短线是下划线注意,如果该模块执行,则__--name__--=--main--;反之为模块名称、

# ModelA模块
def add(x,y):
    return x+y

a = 3
b = 4
# if __name__=='__main__': 没有这句
#  res = add(2,3)
#  print(res)

# 对应ModelB文件如何使用
# import ModelA
# res = ModelA.add(7,8)
# print(res)
总结:定义了相同的res,没有使用--name--,会打印两个结果,5和15,但在ModelA种加入if __name__=='__main__': 则表明只在这个A模块才会执行res = add(2,3),在B模块这个判断结果为假,故只会执行res = ModelA.add(7,8) 输出15,可以用来屏蔽相同变量但不想执行的语句

2.# __all__被用来限制哪些函数,变量可以使用,是一个列表 注意使用前要导入要使用的模块

# ModelA模块
def sum():
    return a+b
def sub():
    return a-b
def mul():
    return a*b
def div():
    return a/b
__all__=['sum','mul']
# 对应ModelB文件如何使用
from ModelA import *
ret = sum()
print(ret)
ret1 = mul()
print(ret1)
 # ret2 = sub() 会报错 说sub没有定义,原因就是前面我们使用了all内置变量进行了限制
# print(ret2)

定义:

就是一个文件夹,其中包含__init__()python文件