1-7编程练习

来源:1-7 编程练习

李嘉源

2019-12-07 08:15:39

class Vehicle(object):
    # 自定义Vehicle类属性

    trans_type = 'SUV'

    # 自定义实例的初始化方法
    def __init__(self, speed, size):
        self.speed = speed
        self.size = size

    # 自定义实例方法show_info,打印实例的速度和体积
    def show_info(self):
        print("我的所属类型为:{},速度:{}km/h,体积:{}".format(Vehicle.trans_type, self.speed, self.size))

    # 自定义实例方法move,打印“我已向前移动了50米”
    def move(self):
        print("我已向前移动了50米")

    # 自定义实例方法set_speed,设置对应的速度值
    def set_speed(self, new_speed):
        self.new_speed = new_speed
        Vehicle.get_speed()
        Vehicle.speed_up()
        Vehicle.speed_down()

    # 自定义实例方法get_speed,打印当前的速度值
    def get_speed(self):
        print("我的时速为:{}km/h".format(self.new_speed))

    # 自定义实例方法speed_up,实现对实例的加速
    def speed_up(self):
        print("我的速度由{}km/h提升到了{}km/h".format(self.new_speed, self.new_speed + 10))
        self.new_speed += 10

    # 自定义实例方法speed_down,实现对实例的减速
    def speed_down(self):
        print("我的速度由{}km/下降到了{}km/h".format(self.new_speed, self.new_speed - 15))
        self.new_speed -= 15

    # 自定义实例方法transport_identify,实现对实例所属类型的判断
    def transport_identify(self, sl):
        if isinstance(sl, Vehicle):
            print('类型匹配')
        else:
            print('类型不匹配')


if __name__ == "__main__":
    tool_1 = Vehicle(20, (3.6, 1.9, 1.75))

    # 调用实例方法 打印实例的速度和体积
    Vehicle.show_info()
    # 调用实例方法 实现实例的前移
    Vehicle.move()
    tool_1.set_speed(40)
    # 调用实例方法 打印当前速度

    # 调用实例方法 对实例进行加速

    # 调用实例方法 对实例进行减速

    # 调用实例方法 判断当前实例的类型
    Vehicle.transport_identify(tool_1)

老师你好,帮忙看下代码哪里出错了

写回答

2回答

时间,

2019-12-08

同学,你好。实例方法需要通过创建的实例对象调用,如果使用类直接调用实例方法, 需要显式地将实例作为参数传入。

例:使用类名调用

http://img.mukewang.com/climg/5dec5aeb09c3e5ee03820132.jpg

使用实例调用 :

http://img.mukewang.com/climg/5dec5b1609cc2e6403680126.jpg

如果我的回答解决了您的疑惑,请采纳!祝学习愉快~~~~

1

qq_慕村8414342

2019-12-07

因为你创建的对象名称叫tool_1,要方法函数写在类里面,要tool_1.函数名才能用比如tool_1.show_info(),不是类名.函数名不是(vehicle.show_info)

2

0 学习 · 8160 问题

查看课程