python基础篇-模块和包
模块和包:可以理解为代码组织的一种方式吧,就像其它的依赖和引入
模块: 有联系的代码组成的py文件
方式1
引用:imort ModuleName
使用:ModuleName.method()
方式2
引入: form ModuleName import MethodName
使用: MethodName()
方式3:
引入:from ModuleName import *
使用: ModuleName.method()
别名: 关键字as 使用了别名,就只能使用别名,而不在能使用模块或方法的原本名称
imoprt ModuleName as mn
from ModuleName import MethodName as ms
_name_:系统变量 ,指向当前模块的模块名称
_name_: 1.在别的模块中调用时,_name_ == ModuleName
2.在自身文件中调用,_name_ =='_main_'
在其它导入的文件中运行时,调用当前模块的_name_变量,_name_ ==‘_main_’ 不会成立,所以该判断下的代码不会执行
模块的调用顺序:
1.在当前目录中查找
2.如果当前目录中不存在,则搜索shell变量下的PYTHONPATH路径下的目录(环境配置)
3.如果还没找到,则查看系统的默认路径(一般不会到这步)
ps1: 自定义的文件名不要与已有的模块重名,以免导致已有的模块无法调用
ps2:使用from 模块 import 功能时,如果功能名称重复,则调用最后定义和导入的
from time import sleep
def sleep():     <=============
    pass
def sleep():
    pass
from time import sleep 《==============
ps3:模块名称本质也是一个引用,如果指向其它变量,也会被覆盖而导致无法使用
模块的_all_变量: 是一个列表,控制模块imort *时的导入行为,只导入_all_列表中声明的功能
_all_ = ['testA','testB']
包:文件夹,存放相关联的模块,文件组织方式,创建包会生成一个_init_.py文件,该文件可以控制包的导入行为
导入包:
import 包名.模块名
from 包名 import *
在_init_.py中定义一个_all_ =[]列表,控制允许导入的模块名称,如果不存在,则无法导入任何文件夹下的模块,只有声明的模块可以导入
 
                    
                     
                    
                 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号