2019-05-05day14总结

1.异常捕获

程序出现异常会直接崩溃,不能往后执行。异常捕获就是为了让程序出现异常的时候不崩溃,自己处理异常

语法1
try:
    代码块1
except:
    代码块2

执行过程:先执行代码块1,在执行代码块1的过程中 如果出现异常程序不崩溃,直接执行代码块2 如果没有出现异常 不执行代码块2 直接执行其他语句

语法2:
try:
    代码块1
except 错误类型:
    代码块2
# 打开文件,如果文件不存在,创建这个文件
try:
    with open('aaa.txt',encoding='utf-8')as f:
        f.read()
except FileNotFoundError:
    print('没有这个文件')
    # open('aaa.txt','w')
try:
    代码块1
except (异常1,异常2,····):
    代码块2
只要是异常中的任何一种 就捕获 不会报错
如果不在里面,报错
所有的异常都执行同一语句(代码块2)
try:
    代码块1
except 异常2:
    代码块2
except 异常3:
    代码块3
根据不同的异常执行不同的语句(代码块)
# 上面的四种结构最后都可以加finally;
# 不管try里面代码是否异常,是否捕获到
# finally后面的代码都会执行
# 一般可以在这个地方做一些数据的保存和备份


try:
    print(int('abc'))
except ValueError:
    print('值错误')
finally:
    print('r')

3.抛出异常

让程序主动崩溃

raise 异常类型

注意:异常类型可以是系统自带的,也可以是程序员自定义的 (要求异常类型必须是exception的子类)

print('abc')
raise KeyError

1.类中的方法

声明在类中的函数就是类的方法
对象方法,类的方法,静态方法

2.对象方法

直接声明在类中的函数就是对象方法,默认参数self
对象方法中默认参数self,在通过对象调用的时候,这个
参数不用传参,系统会自动将当前对象传递给self
哪个对象调用当前方法,self就是谁
self 本质就是当前类的对象,对象能做的self都能做

1.init方法

python中以开头结尾的方法称为魔法方法,系统会在需要的情况下(创建对象的时候)会自动调用
创建对象的时候,系统自动调用init方法,对对象进行初始化操作

2.构造方法

函数名和类名一样的方法就是构造方法。
声明类的时候,系统自动创建和类名相同的函数
这个函数是:
def 类名(args,kwargs):
对象=创建对象
对象.init(
args,**kwargs)
return 对象
所以创建对象的时候 对象=类名() 相当于调用函数
()里是否有参数,取决于类里的init方法是否有
除了self以外的形参

class Person:
    def __init__(self,name='',age=0):
        self.name=name
        self.age=age
        self.tel=123456

    def sleep(self):
        print(self.name+'在睡觉')

p1=Person('zhang')
p1.sleep()

1.属性:类的字段,对象属性

类的字段
直接声明在类中的变量就是类的字段

怎么使用 - 通过类.方式使用

什么时候用 - 属性的值不会因为对象不同而不同
就是用类的字段

2.对象属性
在__init__方法下通过self.属性=值来声明
怎么使用 - 通过对象.使用
什么时候用 - 属性的值会因为对象不同而不同

对象属性的查

对象.属性 没有属性会报错

getattr(对象,'属性名',值) 查找对象的属性 没有会返回默认值

对象属性的增
对象.属性=值 原来有会修改 没有会增加
setattr(对象,'属性名',值) 原来有会修改 没有会增加

对象属性的删
del 对象.属性
delattr(对象,'属性名') 没有会报错

1.name
类.name 获取类的名字以字符串返回

2.doc
类.doc 获取类的说明文档

3.class
对象.class 获取当前对象的类
print([1,2].class) 相对于type

4.dict
对象.dict 把当前对象的属性和值作为键值对以字典返回
类.dict 把当前类所有的字段和对应的值以字典方式返回

5.bases
类.bases 获取当前类所继承的父类,以元组方式返回

6.module
类.module 获取当前类所在模块的名字 返回字符串

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 11,148评论 1 32
  • 这是16年5月份编辑的一份比较杂乱适合自己观看的学习记录文档,今天18年5月份再次想写文章,发现简书还为我保存起的...
    Jenaral阅读 2,869评论 2 9
  • 写在前面的话 代码中的# > 表示的是输出结果 输入 使用input()函数 用法 注意input函数输出的均是字...
    FlyingLittlePG阅读 2,968评论 0 9
  • 一、Python简介和环境搭建以及pip的安装 4课时实验课主要内容 【Python简介】: Python 是一个...
    _小老虎_阅读 5,846评论 0 10
  • 他发现自己竟陷入了一种久久不能平静的悸动中。那调皮的马尾辫一直在在自己的眼前翻飞挥之不去。他相信自己没事,毕...
    唱歌的指尖阅读 423评论 4 9