''' 主动抛出异常处理raise函数 语法格式: raise 异常类型(异常信息) raise NameError(name "a" is not defined) 在接口测试中会用到 断言:assert 断言,什么是断言 其实就是一个assert后面跟一个条件语句,如果条件不成就会触发断言异常 assert断言语句的语法格式 assert语句用来声明某个条件是真的 当assert语句失败的时候,会引发一AssertionError assert 表达式 # 方式一 程序debug调式 问题点:代码出错了,怎么找错误,并且解决问题 调式方法: print大法 在错误代码前一行,使用print输出对应的数据 使用pycharm打断点进行debug调试 F7:往下走一步(遇到函数调用,会进入到函数内部) F8:往下走一步(遇到函数调用,不会进入到函数的内部) 注意: 在任何地方都可以打断点,但是要确定打的断点是否能够执行到 什么时候执行不到:打断点不能打到条件判断上面 ''' # 主动抛出异常 raise ValueError("这个是自己主动引发的异常") raise TypeError("cxcv") raise FileNotFoundError("找不到文件") # assert断言 if 8 > 10: print("成立") else: print("不成立") assert "abc" == "a8bc" # 条件不成立抛出异常 assert 8 > 10 print("999") """ 面向对象 一、类和实例对象 类是一类事物抽象概念,不是真实存在的,描绘了该类事物共同的特征和行为 实例对象: 某类事物的具体个体,是该类事物的具体表现,它是真实存在的,万物皆对象 例如:字典、列表、字符串、元祖是数据类型的对象 可以定义一个数据类,包括字典、列表、字符串、元祖的对象 方法:是通过对象来进行调用 列表的方法: append 列表添加数据(末尾) 方法: 方法的使用:对象.方法名(参数) 例如:列表的方法 li = [11,22,33] li.append() 类和对象 类的定义: 关键字:class 方式一: class 类名: 方式二: class 类名(object): 注意:方式一、方式二定义类是一样的,没有任何区别,只是写法不一样 类名的命名规范: 遵循标识符命名规范 每个单词的第一个字母必须大写(大驼峰命名) Hero Cat MyClass 通过类创建对象:类名() 定义一个猫类: clas Cat(object): pass 对象的组成: 属性 + 方法 = 对象 类属性和实例(对象)属性 属性:定义在类中的变量() 类属性和实例(对象)属性: 什么是类属性:这个类事物所有的对象的共同特征,属性值都是一样的 语法格式:属性 = 属性值 什么是对象属性:这类事物所有对象都有这个属性,但是属性值是不一样的 语法格式:对象.属性 = 属性值 猫类的特征: 所有猫类共同属性:四条腿、长尾巴、两只眼睛 实例属性的访问: 实例属性只有该实例对象自己能访问 初始化方法: 内方法:就是定义在类中的函数 init方法:创建对象的时候自动执行的,不需要手动调用这个方法 方法:定义在类里面的函数叫做方法,本质上还是一个函数 def__init__(self): pass self:代表实例对象(谁去调用这个方法,代表的就是谁) 方法作用:实现对象的某些特定功能 类属性和实例属性 属性:定义在类中的变量() 方法和属性的不一样地方: 方法是行为:动词 属性是变量:名词 实例方法: 实例方法直接定义在类中,类里面定义的函数叫实例方法 实例方法的第一个参数为self(必须要写),这个参数是不需要传参的 案例:猫类的方法定义 """ # 定义类: class Cat: """ 定义一个猫类 """ # 共同的特征(属性) # 直接在类里面定义的变量叫做类属性: # 这类事物所有的对象都有这个属性,属性值都是一样的 # 定义类属性 teg = "四条腿" tail = "有尾巴" # 通过类创建对象:类名(),创建猫类不同的对象 huhu = Cat() kt = Cat() dd = Cat() # 定义实例对象的属性 # 批量定义实例属性 huhu.age = 19 kt.age = 18 dd.age = 8 kt.name = "凯迪" huhu.name = "灰灰" dd.name = "叮当" # 类属性和实例属性定义后的使用: # 获取实例属性值:对象.属性 print(kt.age) print(huhu.age) print(dd.age) # 获取类属性值:对象.属性(不可以通过类去获取实例属性) # 通过对象可以获取类属性 print(huhu.tail) print(huhu.tail) # 通过类也可以获取类属性 print("----------") print(Cat.tail) # 通过类来创建对象 kt = Cat() print(kt) class MyClass: pass m = MyClass() print(m) class Cat: """ 定义一个猫类 """ # 定义类属性 teg = "四条腿" tail = "有尾巴" # 定义实例属性,通过初始化方法(__init__)来定义 def __init__(self, age, name): # 定义实例属性:self代表实例对象,age是实例对象的属性 print(self) self.age = age self.name = name print("正在给对象设置属性") # 类里面的方法,第一参数都是self,self都是一个对象 # 定义实例方法: def skill1(self): print("猫的技能1,吃鱼") def skill2(self): print("猫的技能2,抓老鼠") # 创建对象 # 调用实例属性 kt = Cat(age=18, name="凯迪") print(kt.age, kt.name) # 调用实例方法 kt.skill1() kt.skill2() hh = Cat(age=20, name="灰灰") print(hh) print(kt.age, kt.name, kt.teg)
debug调试步骤:
查看对应的数据信息,程序运行到每个地方,变量类型和数据都可以很直观的看到
F7和F8每行代码依次执行,F7遇到内置函数会进入到函数里面去,F8不会到函数里面去
这个断点是无效的