一.模块和包
包->含有__init__.py文件的文件夹
模块->py文件
类->class[面向对象学习]
函数(方法)->def
以上均不能以数字开头,也不能和python内置的一切重名
1.模块导入的5种方式
1)import 模块名
2)from 模块名 import 调用函数,
3)from 模块名 import *
4)from 模块名 import 函数 as 别名
5)import 模块名 as 别名
#程序运行时,查看当前程序的模块搜索路径列表
import sys
print(sys.path)
2.__name__属性
只有运行入口的py文件(模块)的__name__是__main__,其他被引用的文件(模块)的__name__是不带扩展名的文件名.
总结:
1)代码中一般都会写下判断语句,也就是if __name__ == '__main__':
2)该判断,是用来限定某些代码只在执行该模块代码的时候才执行,一般放的是测试代码,或者整个程序的入口函数.
3.__all__属性
如果一个py文件(模块)中有__all__变量(list类型),当其他py文件(模块)使用from 模块名 import *引用它时,只能导入这个列表中指定的内容.
总结:
1)__all__是一个列表,用来控制其他导入的时候,使用权限,需要配合import *
2)如果在import中明确要导入的内容,那么是不受__all__属性影响.
二.日志操作
一般在开发和测试的时候,将日志基本设置比较低方便挑错,正式运行的时候,要调高,日志文件只记录WARNING及更严重级别的日志.
1.日志的作用
自带时间,代码位置,信息分级可控,比print方便
2.日志基本分级
debug:调试信息 info:普通信息 warning:警告信息 error:错误信息 critical:严重错误
3.pyhon默认的日志包是logging,也有很多成功的第三方包,比如loguru
三.面向对象
1.类和对象的关系:
1)类似相当于图纸(抽象),对象相当于根据图纸制造的实物(具体)
2)每个对象必须有一个对应的类
2.类:
1)很多事物存在相同的属性和行为(也叫方法),比如人有年龄姓名,能吃饭睡觉等
2)描述具有共同特征的事物的抽象,称为类(class)
3.类包含两个组成部分:
1)属性(变量):比如姓名,年龄,身高,肤色等
2)方法(函数):比如吃饭,睡觉,飞行,唱歌等
对象:对象是类的实例,是具体的实体
4.面向对象的特点
1)封装
*将属性和方法放到一起封装成一个整体(定义类),然后通过实例化对象来使用
*对属性和方法增加访问权限控制:公开权限,私有权限
2)继承
*子类可以继承父类,子类继承父类之后,子类就拥有了父类中的属性和方法
*重写:子类从父类继承过来的方法,不满足子类需要或不完全满足子类需要
*私有和继承
3)多态:同一个代码,由于传入的实例对象的不同,最终代码的调用有不同的效果,这就叫多态