Python(十五)
1.抽象基类
利用元类,就可以阻止类被实例化,抽象基类也是一种不能被实例化的类
通过使用抽象基类,报错提前了
2.模块和包
模块是py中最高级别的组织结构,也是最高层次的代码重用手段
会有重名问题:内置函数int会被自己定义的int函数覆盖
最后导入的,会覆盖之前导入的重名方法
测试的也打印出来了
模块在导入的时候,会从头到尾执行一遍所有语句,利用if_ _name=="_ _main_ _"
当模块当做脚本,独立执行的时候,它的_ _name_ _属性被赋值为“_ _main_ _”,在模块代码执行之前,判断if_ _name=="_ _main_ _" 就可以解决
单独执行:
作为模块导入:
name的值就是模块的名称名称而非_ _main_ _
包:
3.3之前需要有一个init这个文件,要不就识别不出是包了,3.3之后就不用了
init.py有承载的构造的功能,可以通过它进行包的初始化
可以定义包的全局变量:
跨文件几别,全局变量修改
不能在模块中使用使用这个包TC的,需要将其作为模块使用才可以