# 模块与包的作用
'''
本节大纲:
1- 模块与包的作用
2- 模块的定义与使用
3- 包的定义与使用
'''
# 1- 模块与包的作用
'''
目前我们还只是一个文件,但是实际的项目代码量很大,有十几万行甚至几十万行,为了方便
管理,就按照功能点分割为 文件 和 目录
什么是模块?
在python中,代码是放在py为扩展名文件中的,一个.py文件就称之为一个模块
什么是包?
又可以把许多模块按照功能放在不同的目录中来组织模块这些组织存放模块文件的目录,我们称之为包
'''
# 2-1 模块的定义:
# 注意,包个模块的命名不能和其它库重名,如:selenium这种名字是万万不行的
# 2-2 模块的使用:
# import ---一把以模块为单元
# 1.导入模块: import module1 import后面有多长写多长
# module1.函数()
# 2.多个模块导入: module1,module2
# 3.给导入的模块起别名: import module1 as 别名
# 起别名的好处:
# 1- 长名字缩短
# 2- 防止同名(库A里面有unit,库B里面也有unit)
# ** 导入其它模块--import 模块名--以模块作为最小单位
# import important #现在导入了直接运行只能得到important模块的两个打印语句,但是未调用模块里面的函数,怎么才能调用模块里面的喊书呢?
# 导入函数之后 模块.函数名() .
# 注意:导入模块的时候如果发现模块名是灰色的,代表模块只是被导入了,没有被调用
# important.sumdate(6,6) #打印得:12
# print(important.cheng(3,3)+3) #打印得30 3**3+3
# 注意,以上的调用都是在同一个包里面,怎么实现不同包的调用呢?
# 不同包的模块调用: import 包名.模块名
# import modupractice.practice1 as prct1 #这里的包名.模块名太长了,起别名
# prct1.sumdate(6,6)
# from import ---可以以函数,变量,类为单元,从..导入...,导入什么只能用什么,针对性更强
'''
1.导入模块 from module1 import 函数名,变量名 意为:从什么导入什么
函数()
print(变量)
2.别名 from module1 import as 别名 好处:
1- 长名字缩短
2- 防止同名(库A里面有unit,库B里面也有unit)
3.from impotent 优劣势
1.可以少输入前缀
2.但是如果代码新增调用,需要修改import语句
3.from import比较有针对性,导入什么用什么,可以直接导入函数,变量 类
'''
# 同包导入:
# from important import sumdate #意为:从这个模块导入这个方法
# sumdate(3,3) #打印得6
# 不同包导入:
# from modupractice import practice1 #意为:从这个包导入这个模块
# print(practice1.cheng(3,3)) #打印得27
# 起别名防止重名:
# from modupractice.practice1 import sumdate as su #意为:从包名.模块名导入这个方法
# su(3,3) #打印得:6
# 3- 包的概念
'''
@@包的定义:package
@@包的作用:
**1 当项目足够大的时候,模块不够用了
**2 将功能相关的模块放入相应的目录结构中来组织模块
**3 这些组织存放模块文件的目录,称之为包
只要导入了包,包下面的所有模块都可以使用
注意::包下面有个_init_.py的初始模块,一般不删,可以配置参数和环境的
@@包的使用:
方法一:到模块
import Phone.Mobie.Analog
Phone.Mobie.Analog.dial()
方法二:到模块
from Phone.Mobie import Analog
Analog.dial()
方法三:到函数
from Phone.Mobie.Analog import dial()
dial()
'''
### 扩展
# print(__name__) #内置变量,它是模块的名字,现在在这个模块打印它,得__main__ ,表示当前运行的模块是主模块
#程序入口
# 1如果运行当前模块,这个__name__ = __main__,表示当前模块就是主模块
# 2如果一个模块被调用,则 __name__= 模块名
import important
'''打印得important模块的打印语句,其中__name__变成了模块名而不是主模块了:
***这是给导入模块做练习用的***
$$$有钱,暴富,加油$$$
important
'''