类方法’静态方法: 方法的使用方式 @classmethod 装饰器 (cls) 类方法#方法的第一个形参是类对象,叫类方法 类对象可以调用类方法 建议使用 一般操作类属性
@staticmethod 静态方法# 只需要写我们自己的形参就行 实例对象可以调用静态方法 类对象可以调用静态方法,建议使用 用于替代函数
实例方法#方法的第一个形参叫self的实例对象叫实例方法 实例对象可以调用类方法
__init__创建对象之后执行 __new__方法 新建对象时执行 用来控制是否创建新对象 Return None就是没有创建对象 就不写返回 New方法里不建议使用super方法,使用 父类名.父类方法(object) __new__方法没有return则当前类不能创建新对象,如果创建了新对象则必须return返回 创建对象时的实参,也会传递给__new__方法 创建对象的参数也会传递到__new__方法,但一般__new__方法都不使用 Def new(cls,*args,**kwargs): 用不定长参数接收
设计模式: 由编程高手总结出来的解决问题的套路 目前#23招 单例模式: 用于保证一个类只有一个实例 Instance=None 创建一个值为None的类属性 实例,实体 初始化时才能给单例模式传参 只有第一次创建对象的时候,才需要执行属性的初始化 如果要修改单例对象的属性,最好是通过调用方法
异常: 会导致程序崩溃,异常之后的代码无法机会执行 学习怎样修正异常 捕获异常 try...except... try:
except : #当try语块发生异常时,会跳转到except执行,在except里可以对异常进行保存或修正 捕捉异常之后,程序可以正常结束
except xxx: #捕捉指定名称 except 异常名 except (异常1,异常2...) #捕捉多个异常 except #except后不指定异常 则捕捉所有异常 捕捉任意异常 1.except 不指定异常名.则可以捕捉所有异常 2.except Exception #Exception是python里绝大部分异常的父类 唯独except不能设置别名 异常的else和finally: Else 当没有异常的时候会执行 Finally 不管有没有异常都会执行
异常的传递: 被调用的函数出现异常 会导致调用函数的地方也出现异常 抛出自定义的异常: Class xxx(Exception): #自定义异常 一定要继承Exception
Raise xxx() #抛出异常raise 异常对象()
异常要显示描述信息: 异常对象的__str__方法返回值,将作为异常的描述信息
自定义异常和系统异常一样可以捕捉
异常处理中抛出异常: 1.在异常中可以使用raise抛出捕捉到的异常 那么当前的except里只需要赋值异常的记录等待处理就行
模块: #一个python文件就是一个模块 处理大型项目 不能乱放的 是有搜索路径的 调用模块:
- import 模块名
模块名.功能名() 2.import 模块名 as 别名 别名.功能名() 3.from模块名import功能名 功能名() #没导入的功能不能直接使用 4.from模块名import功能名as别名 别名() 调用模块-使用星号导入: 5.from 模块名 import * #导入模块里所有功能 功能名 #尽量少用* 不安全 写在模块__all__变量列表里的功能,才能被 * 导入 被导入模块的__all__变量只影响 * 运行模块内容两种方式: 1 .直接运行 2 .导入运行 #直接运行py文件 它的值为__main__ #模块导入 它的值为模块名 只有当xxx的值等于__main__才需要执行测试代码 不等于的话就是在调用我们 则我们可以不用被调用 直接运行 If__name__== “main”
Python的包: #装模块的 导入包: 1.包名.模块名 2.From 包名 import 模块名 3.From 包名 import 模块名 as 别名 4.From 包名.模块名 import 功能 使用*导入包下的功能,要求包里必须要有__init__.py文件,并且文件里必须要有__all__变量init__的注意点: 提供__all__变量 ,执行导入包时的初始化操作 Python2的报下,必须要有__init.py 文件
子包的导入: 1.import 父包.子包.模块名 2.From 父包.子包 import 模块名
同级包下的模块不能相互调用
If判断的使用: 0可以作为fasle使用 一无所有就是fasle
数字and运算: 当有值为0 结果为0 当没有值为0 则取最后一个数字
数字or运算: 只有有不为0的数字,则取第一个不为0的值 当所有数字为0时候,则结果才为0