天天看点

异常,面向对象

1.异常可以分为两种一种是编译时错误,这种可以在观看代码的时候解决

另外一种就是运行时错误,只有在编译之后才会显示

2.在处理异常时,常用的格式是

try:
  #可能出现错误的代码
except:
  #错误信息
finally:#可添加也可以不添加
  #一定执行的代码      

3.except可以有很多个,且可以使用except Exceptipn as err:print(err)来显示错误原因

def func():
  try:
    list = []
    list.pop()
    a = input('第一个数:')
    b = input('第二个数:')
    s = input('输入运算符:(+ - * /)')
    if s = '+':
      return a+b
    if s = '-':
      return a-b
    if s = '*':
      return a*+b
    if s = '/':
      return a/b
  except ZeroDivisionException as err:
    print('分母不能为0!',err)
  except ValueException as err:
    print('必须输入整数!',err)
  except Exception as err:#当可能出错代码,在except中没有匹配的时候,会进入到异常范围更大的Exception异常中匹配
    print('空列表无法删除!',err)
g = func()
print(g)      

4.try-except-finally,当文件不存在读取会抛异常,但一定会执行finally,无论是否含有return语句

try:
  stream = open('a1.txt','r')
  container = srtream.read()
  except FileNotException as err:
    print(err)
  finally:
    stream.close() #一定会关闭管道      

5.面向对象:

1)对象其实就是是一个特征以及行为动作的个体

2)类就是某些相同特征以及行为动作个体的集合

3)属性就是个体的特征

4)方法就是个体的行为动作

类的定义:
class 类名:
  属性
  方法
例如:
class Student:
  name = '小名'
  age = 20
s = Student()#创建Student类的对象
print(s.name)#输出Student对象的名字信息  
print(s.age)#输出Student对象的年龄信息  
s.age = 2#修改Student对象s的年龄信息,现在自己开辟的内存中寻找属性,如果有就是用,如果没有就去类中寻找该属性      

6.类的方法,初始化方法__init__()

class Student:
  def __init__(self,name,age):
    self.name = name
    self.age = age
  def eat(self,food):
    print('{}今年{}岁,喜欢吃{}!'.format(self.name,self.age,food))
  def run(self,l):
    print('{}跑了{}千米!'.format(self.name,l))
s1 = Student('张三',20)
s1.eat('红烧肉')#结果为张三今年20岁,喜欢吃红烧肉!
s1.run('3')#结果为张三跑了3千米!
s1 = Student('李四',21)
s1.eat('红烧狮子头')#结果为李四今年21岁,喜欢吃红烧狮子头!
s1.run('4')#结果为李四跑了3千米!      

7.对象的创建过程

1)先创建类的空间,

2)再就是寻找该类的空间,

3)再申请获得一个对象空间

4)查看有没有__init__()函数,如果有就进行__init__()函数里面的操作,将地址赋值