为啥40和10行那里显示出错?

来源:1-7 编程练习

慕先生2341358

2020-07-14 22:09:21


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("我的所属类型为:{0},我的时速为:{1},体积为:{2}".format(trans_type,self.__speed,self.size))

    # 自定义实例方法move,打印“我已向前移动了50米”

    def move(self):

        print("我已经向前移动了50米")

    # 自定义实例方法set_speed,设置对应的速度值

    def set_speed(self,new_speed):

        self.__speed = new_speed

    # 自定义实例方法get_speed,打印当前的速度值

    def get_speed(self):

        print("我的时速为:{0}Km/h")

    # 自定义实例方法speed_up,实现对实例的加速

    def speed_up(self):

        old_speed = self.__speed

        self.__speed += 10

        print("我的速度由{0}km/h提升到了{1}km/h".format(old_speed,self.__speed))

    # 自定义实例方法speed_down,实现对实例的减速

    def speed_down(self):

        old_speed = self.__speed

        self.__speed -= 15

        print("我的速度由{0}km/h下降到了{1}km/h".format(old_speed,self.__speed))

    # 自定义实例方法transport_identify,实现对实例所属类型的判断

    def transport_identify(self):

        if (isinstance(tool_1,Vehicle)) :

            print ("类型匹配")

if __name__ == "__main__":

    tool_1 = Vehicle(20, (3.6, 1.9, 1.75))

   

    # 调用实例方法 打印实例的速度和体积

    tool_1.show_info()

    # 调用实例方法 实现实例的前移

    tool_1.move()

    tool_1.set_speed(40)

    # 调用实例方法 打印当前速度

    tool_1.get.speed()

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

    tool_1.speef_up()

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

    tool_1.speed_down()

    # 调用实例方法 判断当前实例的类型

    tool_1.transport_identify()


写回答

1回答

好帮手慕燕燕

2020-07-15

同学你好,报错第40行、第10行是因为,引用类的属性需使用self.trans_type

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

另外,同学提供的代码还有以下几点需要注意:

1. 第40行,同学在类中定义的方法是get_speed(),调用的时候也要使用同样的方法名http://img.mukewang.com/climg/5f0e62ed09cfd79e04150079.jpg

2.  类中定义的方法speed_up(),调用时同学误写成了speef_up()

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

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

0

0 学习 · 8160 问题

查看课程