zoukankan      html  css  js  c++  java
  • python练习题之面向对象(二)

    # 1、python面向对象编程中,内置方法__str__、__add__如何使用,可以代码举例
    class Vector:
    def __init__(self, a, b):
    self.a = a
    self.b = b

    def __str__(self):
    return 'Vector (%d, %d)' % (self.a, self.b)

    def __add__(self, other):
    return Vector(self.a + other.a, self.b + other.b)

    v1 = Vector(2, 10)
    v2 = Vector(5, -2)
    v3 = Vector(10, 10)
    print(v1+v2+v3)


    # 2、设计一个车类,属性:车的类型、车的速度、
    # 分别再建立两个子类:小汽车类、电动汽车类 去继承车类
    # 为了实现汽车增加能源的方式,在父类中添加 一个增加能源方法 increased_energy() 做出抽象方法
    # 实现小汽车类加 油 电动汽车充电的不同实现
    from abc import ABCMeta,abstractmethod
    class vehicle(metaclass=ABCMeta): #车类
    def __init__(self,mold,speed):
    self.mold=mold
    self.speed=speed

    @abstractmethod
    def increased_energy(self):
    pass

    class car(vehicle): #车的子类,小汽车类,继承父类的构造方法

    def __init__(self,mold,speed):
    vehicle.__init__(self,mold,speed)

    def increased_energy(self):
    print(self.mold+'需要加油,能达到速度',self.speed)

    class bus(vehicle): #车的子类,电动汽车类,继承父类的构建方法
    def __init__(self,mold,speed):
    vehicle.__init__(self,mold,speed)

    def increased_energy(self):
    print(self.mold+'需要加油,能达到速度',self.speed)

    car1=car('小汽车',120)
    car1.increased_energy()

    bus01=car('公共汽车',80)
    bus01.increased_energy()

    # 3、设计一个数据类型类 DataType ,包含一个抽象方法 length 方法,
    # 并建立多个子类(Dict、List、String、Tuple)对length 方法进行实现:
    # 如Dict子类 实现length方法功能,输出显示“字典形式的数据,包含3个项”,依次类推
    # 创建一个get_length方法,能实现传入不同的子类对象,输出不同的求长度的结果
    from abc import ABCMeta,abstractmethod
    class DataType(metaclass=ABCMeta): #抽象类DataType
    @abstractmethod
    def length(self): #抽象方法length
    pass

    class Dict(DataType):
    def length(self):
    print('字典形式的数据,包含3个项')

    def get_length(self,object):
    return len(object.keys())

    class List(DataType):
    def length(self):
    print('列表形式的数据,包含3个项')

    def get_length(self,object):
    return len(object)

    class String(DataType):
    def length(self):
    print('字符串形式的数据,包含3个项')
    def get_length(self,object):
    return len(object)

    class Tuple(DataType):
    def length(self):
    print('元组形式的数据,包含3个项')

    def get_length(self,object):
    return len(object)

    dict = Dict()
    dict01= dict.get_length({'id':23,'name':3,'value':2})
    print(dict01)

    dict = List()
    dict01= dict.get_length([23,3,2,99,77])
    print(dict01)

    dict = Tuple()
    dict01= dict.get_length((23,3,2,56,'iji'))
    print(dict01)

    dict = String()
    dict01= dict.get_length('232')
    print(dict01)

    # 4、在异常处理中这些try、except、else、finally、raise有什么含义
    #try:捕会出现异常的代码
    #except:捕获异常并处理
    #else:没有发生异常,就执行此语句
    #finally:无论是否发生,都执行此异常
    try:
    num=int(input('请输入0-4以内的数字:'))
    list1=[44,55,88,32,15]
    print(list1[num])
    except IndexError as e:
    print('数据越界了')
    else:
    print('输入正常')
    finally:
    print('程序结束了')
    #raise:引发一个异常
    def abcErr():
    raise Exception('抛出一个异常')
    print('hello')
    try:
    abcErr()
    except Exception as x:
    print(x)
    # 5、创建一个用户自定义异常UsernameInputError,如果用户用户名输入错误,能通过捕获错误并提示用户名***输入错误
    def UsernameInputError(a):
    username=input('请输入用户名:')
    if a!=username:
    raise Exception('用户名'+username+'输入错误')

    try:
    UsernameInputError('admin123')
    except Exception as u:
    print(u)


    # 6、调研完成python读取 .ini文件 以及 读取yaml文件的实现

    file1 = 'E:\桌面\自动化测试项目\homework\data\in.ini'
    str=open(file1,'r',encoding='utf-8')
    a=str.read()
    print(a)

    yamlPath = 'E:\桌面\自动化测试项目\homework\data\user.yaml'
    str=open(file1,'r',encoding='utf-8')
    a=str.read()
    print(a)







  • 相关阅读:
    python_ 学习笔记(hello world)
    python_ 学习笔记(运算符)
    MySQL-联合查询
    MySQL-date和datetime
    python_ 学习笔记(基本数据类型)
    python_ 学习笔记(基础语法)
    Visaul Studio 常用快捷键的动画演示
    IIS日志-网站运维的好帮手
    浅谈反射机制
    SQL Server 数据库优化文章
  • 原文地址:https://www.cnblogs.com/tingting-yang/p/13181049.html
Copyright © 2011-2022 走看看