异常,面向对象

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__()函数里面的操作,将地址赋值

5)如果没有就开辟内存给对象

posted @   求知律己  阅读(45)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
· 零经验选手,Compose 一天开发一款小游戏!
点击右上角即可分享
微信分享提示