• 内置函数的补充/super/异常值处理


    内置函数的补充

    • 1.type:查看类型

    • 2.issubclass:

      class Base:
          pass
      
      class Foo(Base):
          pass
      
      class bar:
          pass
      
      print(issubclass(bar,Base)) #判断Base是不是bar的祖先,是返回True不是返回False
      
    • 3.isinstance

      class Base():
          pass
      class Foo(Base):
          pass
      
      obj = Foo()
      print(isinstance(obj,Base))#判断obj是否为Foo类或者基类的的一个实例
      
      #判断obj是否为Foo类或者基类的的一个实例,在判断是否为其中的一个实例时这种更精确
      class Foo:
          pass
      obj = Foo()
      if type(obj) == Foo:
          print("obj是Foo类的对象")
      
    • 4.supper

      #示例一
      #按照类查找的关系一个个的往上找的
      class Bar(object):
          def func(self):
              print("bar.func")
      
      class Base(Bar):
          pass
      
      class Foo(Base):
          def func(self):
              super().func() #根据类的继承关系,按照顺序挨个去找父类中func方法并执行(默认:找到第一个就不再找)
              print("foo.func")
      
      obj = Foo()
      obj.func()
      
      #示例二
      class Base(object):
          def func(self):
              super().func()
              print("base.func")
      
      class Bar(object):
          def func(self):
              print("bar.func")
      
      class Foo(Base,Bar): #Foo->Base->Bar
          pass
      
      obj = Foo()
      obj.func()
      '''
      并不会报错,而是根据Foo的继承关系往后寻找
      #输出的结果为
      bar.func
      base.func
      如果:
      obj = Base()
      obj.func()
      便会报错
      '''
      #总结:
      #super().func():根据self对象所属的类的继承关系,从前到后挨个往后找
      
    • 5.异常值的捕获

      #示例一
      try:
          int("yang")
          pass
      except Exception as e: #Except可收集所有类型的错误信息
          print(e)
      
      #示例二
      #终极捕获版的大boss
      try:
          #int("yang")
          v = []
          v[1100]
          pass
      except ValueError as e: #Except可收集所有类型的错误信息
          pass
      except IndexError as e: #Except可收集所有类型的错误信息
          pass
      except Exception as e: #Except可收集所有类型的错误信息
          print(e)
         
      #示例三
      try:
          int("yang")
      except Exception as e:
          print(e) #e是Exception类的对象中的一个错误信息
      finally:
          print("最后") #无论有没有错误最后都执行的东西
          
      #示例四 
      #finally的特殊情况
      def func():
          try: #try只要有终止的一天,肯定会执行到fially的
              v = 1
              return 123  #通常来讲函数遇到return便终止,但此处一定会执行到finally,如果不在try里面当然没什么问题,正常终止
      
              int("yang")
          except Exception as e:
              print(e) #e是Exception类的对象中的一个错误信息
          finally:
              print("最后") #无论有没有错误最后都执行的东西
      
      func()
      
      
      
    • 6.主动触发异常

      #基础结构
      try:
          int(123)
          raise Exception("HASVDHAI") #代码中主动抛出错误
      except Exception as e:
          print(e)
      
      #升级版
      def func()
          result = True
          try:
              with open("x.log",mode="r",encoding="utf-8")
                  data = f.read()
              if "yang" not in data:
                  raise Exception() #如果括号中没东西便返回e,要理解e的含义
          except Exception as e:
              result = False
      
  • 相关阅读:
    Ubuntu 16.04 快速搭建ftp服务(转载)
    emmc协议简介(转载)
    产品经理简介
    小程序常用代码
    微信登录
    sql临时表与变量表
    备份数据库与还原数据库
    JQuery多个异步操作后执行(resolve,promise,when,done)
    苹果IOS下text-shadow与box-shadow失效的解决办法
    jS弹出新窗口被拦截的解决方法
  • 原文地址:https://www.cnblogs.com/yangzilaing/p/14054932.html
Copyright © 2020-2023  润新知