疯狂Python讲义Unit6Test

本文深入探讨了Python的单元测试,包括如何使用unittest模块创建和运行测试用例,以及断言方法的使用,帮助读者理解如何确保代码的正确性和可靠性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#!/usr/bin/pytnon3

# test01:创建学生类
class student:
    def __init__(self,name,age,gender,phone,address,email):
        self.name=name
        self.age=age
        self.gender=gender
        self.phone=phone
        self.address=address
        self.emai=email
    def eat(self):
        print(self.name,'can eating')
    def drink(self):
        print(self.name,'can drink')
    def paly(self):
        print(self.name,'can play')
    def sleep(self):
        print(self.name,'can sleep')
    info='student'
    @classmethod # 类方法
    def stclass(cls):
        print(cls.info)
    @staticmethod
    def staF(input):
        print('静态方法都可以调用,输入值是%s',input)
    # property()函数使用
    def setvalue(self,value):
        self.value=value
    def getvalue(self):
        return self.value
    def delvalue(self):
        del self.value
    value=property(setvalue,getvalue,delvalue,'学生的属性值')
    @property
    def study(self):
        return self.study
    @study.setter
    def study(self,value):
        self.value=value
# test02:在test01的基础上,创建列表,用来储存学生,可以在列表中增改删查学生
class studentList:
    def __init__(self):
        self.stdL=[]
    def quaryName(self,name):
        if [x for x in self.stdL if x.name==name]:
            return [x for x in self.stdL if x.name==name]
        else:
            return '友好提示不存在'
    def quaryEmail(self,email):
        if [x for x in self.stdL if x.email==email]:
            return [x for x in self.stdL if x.email == email]
        else:
            return '友好提示不存在'
    def quaryAddress(self,address):
        if [x for x in self.stdL if x.address==address]:
            return [x for x in self.stdL if x.address==address]
        else:
            return '友好提示不存在'
    def addStudent(self,student):
        return self.stdL.append(student)
    def delStudnet(self,student):
        while student in self.stdL:
            self.stdL.remove(student)
s1=studentList()
print(s1)
s1.stdL=[student('andy', 23, 'male', 1234567, '上海', 'andyl@163.com'),\
         student('jack', 25, 'male', 12345678, '北京', 'jack@live.com'),\
         student('alex', 27, 'male', 123456789, '南京', 'alex@google.com')]
print(s1.stdL)
print(s1.quaryName('andy'))
print(s1.quaryAddress('andy'))
# test03:二维坐标系点类,提供两点距离方法和判断三点构成的三角形的形状
import math
class point:
    def __init__(self,x,y):
        self.x=x
        self.y=y
    @classmethod
    def distance(cls,point1,point2):
        return math.sqrt((point1.x-point2.x)**2+(point1.y-point2.y)**2)
    @staticmethod
    def iftriangle(point1,point2,point3):
        if point.distance(point1,point2)+point.distance(point1,point3) > point.distance(point2,point3)\
        and point.distance(point1,point2)+point.distance(point2,point3) > point.distance(point1,point3) \
        and point.distance(point1,point3)+point.distance(point2,point3) > point.distance(point1,point2):
            return True
        else:
            return False
    @classmethod
    def whatShape(cls,point1,point2,point3):
        if point.iftriangle(point1, point2, point3):
            orderlist=sorted([point.distance(point1,point2),point.distance(point1,point3),point.distance(point2,point3)])
            print('orderlist',orderlist)
            if orderlist[0]**2 + orderlist[1]**2 == orderlist[2]**2:
                return '三角形是直角三角形'
            elif orderlist[0]**2 + orderlist[1]**2 < orderlist[2]**2:
                return '三角形是钝角三角形'
            elif orderlist[0]**2 + orderlist[1]**2 > orderlist[2]**2:
                return '三角形是锐角三角形'

p1=point(0,0)
p2=point(1,1)
p3=point(2,0)
print(point.distance(p1,p2))
print(point.iftriangle(p1,p2,p3))
print(point.whatShape(p1,p2,p3))

# test05:交通工具、汽车、火车、飞机这些类,有继承关系
class vehicle:
    def __init__(self,type):
        self.type=type
    def move(self):
        print('交通工具可以移动')
class car(vehicle):
    pass
class airplane(vehicle):
    def __init__(self,type,color):
        super().__init__(type)
        self.color=color
    def move(self):
        print('飞机飞')
class train(vehicle):
    def __init__(self,type,color):
        super().__init__(type)
        self.color=color
    def move(self):
        print('火车在铁轨上移动')

    def type1(self):
        print(self.type)
# c1=car('汽车')
a1=airplane(111,222)
a1.move()
t1=train('火车','白色')
t1.move()
t1.type1()

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值