期末笔记后期整理,如有问题,请多多指教。
一、异常
1、所有异常类都是Exception的子类
2、常见的异常
①NameError:访问未声明的变量
②ZeroDivisionError:除数为0
③SyntaxError(编译时发生)
④IndexError:序列中不存在的索引
⑤KeyError:字典中不存在的键访问值时
⑥FileNotFoundError
⑦AttributeError:尝试访问未知对象属性
3、异常处理
①捕获简单异常
try:
#语句块
except:
#异常处理代码(捕获所有异常)
当try里面语句出现错误时,不再继续执行try中语句,直接执行except中处理异常的语句。
②捕获多个异常
try:
#语句块
except 异常名称1:
#异常处理代码
except 异常名称2:
#异常处理代码
except(异常名1,异常名2):
③捕获异常的描述信息:为了区分不同的错误信息,使用as获取系统反馈的错误信息。
except(ZeroDivisionError,ValueError) as result:
print("捕获到异常:%s"%result)
except Exception as result:
print("捕获到异常:%s"%result)
④没有捕获到异常:如果try语句没有捕获到任何的错误信息,就不再执行except,而会执行else语句
try:
...
except:
...
else:
...
在没有except的try语句中使用else语句,会引发语法错误。
⑤终止行为:无论是否捕获到异常,都要执行一些终止行为,如关闭文件、释放锁等,用finally语句处理。
#完整语句格式:
try:
#...
except A:
#...
except:
#...
else:
#...
finally:
#...
4、抛出异常
①raise语句
raise 异常类 #引发异常时会隐式创建对象
raise 异常类对象 #引发类对象对应异常
raise #重新引发刚刚发生的异常
raise IndexError
index_error=IndexError()
raise index_error
try:
raise IndexError
except:
print("出错了!")
raise
②指定异常的描述信息
raise IndexError("...")
③异常引发异常
raise IndexError("...") from exception
二、面向对象
1、类的定义
①类名(首字母必须大写)
②属性:事物特征
③方法:事物行为
class 类名:
类的属性
类的方法
方法和函数的区别:方法必须显式的声明一个self参数,而且位于参数列表的开头。
2、根据类创建对象
对象名=类名() #p=Person()
给对象添加属性
对象名.新的属性名=值 #p.age=18
3、构造方法:__init__()
当创建类的实例的时候,系统会自动调用构造方法,从而实现对类进行初始化的操作。
def __init__(self):
self.color="red"
'''
def __init__(self,color):
self.color=color
'''
4、析构方法:__del__()
当删除一个对象来释放类所占用的资源时,默认调用析构方法。(程序结束)
5、self
在方法的定义中,第一个参数永远是self,当某个对象调用方法时,会把这个对象作为第1个参数传给self。
6、封装
①私有属性:属性名前加两个下划线
②添加供外界调用的方法:设置和获取属性值
class Person:
def __init__(self,name):
self.__name=name
def set_name(self,new_name):
self.__name=new_name
def get_name(self):
return self.__name
7、继承——class 子类名(父类名):
①若定义类的时候没有标注出父类,则这个类默认继承自object的
如:class Person(object):与class Person:等价
父类的私有属性和私有方法不会被子类继承和访问。
②Python语言支持多继承
如:class 子类(父类1,父类2,...)
子类继承的多个父类间是平行的关系,子类先继承的哪个类就会调用哪个类的方法。
③重写父类方法
调用父类方法:如super().__init__(leg_count)
8、多态
9、类属性和实例属性
class Cat(object):
#类属性
number=0
def __init__(self):
#实例属性
self.age=1
cat=Cat()
cat.number#用对象访问类属性
Cat.number#用类访问类属性(常用)
10、类方法@classmethod和静态方法@staticmethod
来源:CSDN
作者:小野人_vector
链接:https://blog.csdn.net/xiaoyeren_ITRoad/article/details/104173767