python-测试相关基础知识-补充
文章目录
- 1.面向对象
- 1.1 基础概念
- 1.2 python 面向对象关键字
- 1.2.1 class关键字
- 1.2.2 __init__初始化方法
- 1.2.3 __del__销毁方法
- 1.2.4 __str__输出字符串方法
- 1.3 面向对象三大特点
- 1.3.1 封装
- 1.3.2 继承
- 1.3.3 多态
- 1.4 类属性和类方法
- 1.5 静态方法
- 2.文件操作
- 2.1 文件基本操作
- 2.2 按行读取文件内容
- 2.3 JSON操作
- 3.UnitTest-单元测试框架
- 3.1 基本概念
- 3.2 TestCase
- 3.3 TestSuit
- 3.4 TextTestRunner
- 3.5 TestLoader
- 3.6 Fixture
- 4. 断言
- 5. 参数化
- 6. 跳过
1.面向对象
1.1 基础概念
面向函数的编程方式
- 把要完成的需求所有步骤按顺序逐步实现;
- 根据开发需求,可以把需求拆分成多个具有独立功能的函数;
- 实现需求代码就是顺序调用不同功能的函数;
面向对象概念
- 在执行某个需求之前,先确定职责(方法);
- 根据职责确定不同的对象,在对象内部封装不同的方法;
- 实现需求就是顺序的让不同对象调用不同的方法;
面向对象的核心概念:类和对象
- 类:对一群具有相同属性和特征的事务的统称,抽象且不能直接使用;
- 对象:由类创建的具体的存在,可直接使用
类和对象的关系
- 类是模板,对象根据这个模板被创建出来,先有类再有对象;
- 根据一个类可以创建多个对象;
- 不同对象的属性可以不同;
类的设计三要素
- 类名:这类事物的名称;
- 属性:这类事物的特征;
- 方法:这类事物的行为;


1.2 python 面向对象关键字

在python中定义一个类注意
| 操作 | 说明 |
|---|---|
| 类名: | 类名应该是有意义的,并且能够反映类的功能。按照惯例,类名通常以大写字母开头。class:类名 |
| 初始化方法: | __init__方法是一个特殊的方法,它在创建类的新实例时被调用。你可以在这个方法中定义必要的初始化工作。def __init__(self): |
| 属性: | 属性是类的数据成员,可以是公共的或私有的。在Python中,以双下划线开头的名称被视为私有的。self.__name = name |
| 方法: | 类是行为的封装,因此你应该在类中定义必要的方法。和属性一样,方法也可以是公共的或私有的。def get_name(self): |
| 继承: | 你可以通过继承来创建一个类,继承类会继承父类的所有属性和方法。在Python中,你可以使用extends关键字来实现继承。class Dog(Animal): 3w2qq,l.k; |
| 封装: | 在Python中,你可以使用双下划线开头的方式将属性或方法标记为私有的,这样可以保护它们不被外部访问或修改。 |
| 多态: | 多态是面向对象编程的一个重要特性,它允许你使用父类引用来指向子类对象。在Python中,你可以通过定义特殊方法__instancecheck__和__subclasscheck__来实现多态。 |
| 异常处理: | 你应该在代码中正确地处理可能出现的异常。在Python中,你可以使用try-except语句块来处理异常。 |
| 文档字符串: | 你应该为类、方法和属性提供有意义的文档字符串,以便其他开发人员理解它们的功能和用法。 |
| 类变量: | 类变量是在所有实例之间共享的变量,它们可以被所有实例访问和修改。在Python中,你可以使用class关键字来定义类变量。 |
继承
# 定义一个父类
class Animal: def __init__(self, name): self.name = name def speak(self): print("An animal speaks.") # 定义一个子类,继承自Animal类
class Dog(Animal): def __init__(self, name, breed): super().__init__(name) self.breed = breed def bark(self): print("Woof!") # 创建一个Dog对象
my_dog = Dog("Buddy", "Golden Retriever") # 访问父类的属性和方法
print(my_dog.name) # 输出:Buddy
my_dog.speak() # 输出:An animal speaks. # 访问子类的属性和方法
print(my_dog.breed) # 输出:Golden Retriever
my_dog.bark() # 输出:Woof!
1.2.1 class关键字
类和方法的定义说明
⽅法的定义格式和之前学习过的函数⼏乎⼀样 ;
区别在于第⼀个参数必须是 self
格式
class 类名:def 方法1(self,参数列表):pass
案例1:猫类的定义
class cat:def eat(self):print("汤姆爱吃鱼")def drink(self):print("汤姆爱喝水")
类的使用-创建对象
- 实例------通过类创建出来的对象叫做类的实例;
- 实例化------创建对象的动作叫做实例化 。
# 创建 lazy_cat 对象
lazy_cat = cat()
# 调用对象的 eat 方法
lazy_cat.eat()
# 调用对象的 drink 方法
lazy_cat.drink()
self参数的使用说明
- 在类的封装方法内部,self就表示调用方法的自己对象;
- 调用方法时,不需要为self传递参数;
- 方法内部可以通过self.来访问对象的属性;
- 在方法内部可以通过 self. 调⽤对象的⽅法;
- 在类的外部,通过 对象名. 访问对象的属性和⽅法
# 定义 cat 类
class cat:def set_name(self, name):# 给 cat 类添加一个属性 nameself.name = namedef eat(self):print("%s 爱吃鱼" % self.name)def drink(self):print("%s 爱喝水" % self.name)
1.2.2 __init__初始化方法
概念
__init__就是类的初始化方法,是对象的内置方法; 当用类名创建对象时,会自动执⾏以下操作:
- 为对象在内存中分配空间 —创建对象;
- 系统自动调用方法(init)
案例:cat 类增加__init__方法
# 定义 cat 类
class cat:# 初始化方法def __init__(self):print("初始化方法")def eat(self):print("小猫爱吃鱼")def drink(self):print("小猫爱喝水")# 创建对象的同时,初始化方法被自动调用
lazy_cat = cat()
案例:带有参数的初始化方法
# 定义 cat 类
class cat:# 带有参数初始化方法def __init__(self, name):self.name = nameprint("%s 的带有参数的初始化方法" % self.name)def eat(self):print("%s 爱吃鱼" % self.name)def drink(self):print("%s 爱喝水" % self.name)lazy_cat = cat("tom")
初始化方法的缺省参数
# 定义 cat 类
class cat:# 带有缺省参数初始化方法def __init__(self, name = "猫"):self.name = nameprint("%s 的带有参数的初始化方法" % self.name)def eat(self):print("%s 爱吃鱼" % self.name)def drink(self):print("%s 爱喝水" % self.name)# 没有指定 name 的值
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
