Python实验一 面向对象程序设计实验

Python实验一 面向对象程序设计实验

一、实验目的

了解面向对象程序设计思想
了解对象、类、封装、继承、方法、构造函数和析构函数基本概念
掌握定义类、成员变量、成员函数、静态变量和静态方法
掌握通过类定义实现继承和多态的方法
掌握对象的创建和使用方法

二、实验内容(包括分析或步骤)

  1. 定义类和使用类

定义交通工具(Vehicle)类,定义两个成员变量:品牌(brand)、型号(type);定义构造函数,在其中通过静态变量方式设置品牌;
定义析构函数,在其中将交通工具对象的品牌和型号清空;
定义一个成员函数,在其中输出当前交通工具对象的品牌和型号;
定义一个类方法,在其中更新交通工具类的静态变量品牌和型号。
创建一个交通工具对象,设置其品牌为“audi”,型号为“A6”,然后通过对象调用其成员函数,输出其品牌和型号,销毁对象;
设置所有交通工具对象的品牌为“大众”,通过类方法,更新品牌为“奥迪”。
2. 类的继承和多态

定义一个抽象类交通工具(Vehicle)类,定义一个抽象方法(drive);
定义2个子类汽车和飞机,在子类中实现抽象方法,输出不同交通工具的驾驶情况(如果是飞机,则输出机长名字、乘务员数量和乘客数量,如果是汽车,则输出驾驶员名字,汽车型号和行驶年数)。
定义一个函数,判断输入的对象是什么类型的,然后调用drive方法输出该交通工具信息。

三、实验实现

核心代码1:

class Vehicle():
    """def __init__(self):
        self.brand
        self.type"""
 
    def __init__(self, brand, type):
        self._brand = brand
        self._type = type
 
    def __del__(self):
        print(self._brand, "is deleted")
        self._brand = ''
        # self._type = ''
 
    def set_brand(this, brand):
        this._brand = brand
 
    def out(self):
        return self._brand, self._type
 
def main():
    v = Vehicle("audi", "A6")
    print(v.out())
    v.__del__()
    v.set_brand('Volkswagen')
    print(v.out())
    v.set_brand('audi')
    print(v.out())
 
if __name__ == '__main__':
    main() 

运行结果1:
请添加图片描述

核心代码2:

from abc import abstractmethod, ABCMeta
 
class Vehicle(metaclass=ABCMeta):
    @abstractmethod
    def drive(self):
        pass
 
class Car(Vehicle):
    def drive(self):
        print("驾驶员:%s\n汽车型号:%s\n行驶年数:%d" % ('LZG', 'AE86', 3))
 
class Airplane(Vehicle):
    def drive(self):
        print("机长:%s\n乘务员数量:%d\n乘客数量:%d" % ('lzg', 15, 66))
 
def run(vehicle):
    print(vehicle.__class__)
    vehicle.drive()
 
def main():
    v = [Car(), Airplane()]
    m = map(run, v)
    list(m)
 
if __name__ == '__main__':
    main()

运行结果2:
请添加图片描述

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我慢慢地也过来了

谢谢大佬的投喂

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值