• 内置函数的补充/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
      
  • 相关阅读:
    ng-class中的if else判断
    Sass 的使用
    pre 标签的使用
    C++操作 SQL数据库 实例 代码步骤
    自己写的一个操作Mysql的简单的实例
    C++ 链接Mysql 函数介绍
    Mysql 操作命令 详解
    MFC程序开始的执行过程详述
    Java各种日期格式的获取和设置指定日期
    DM8168 OpenCV尝试与评估(编译ARM版OpenCV)
  • 原文地址:https://www.cnblogs.com/yangzilaing/p/14054932.html
Copyright © 2020-2023  润新知