在网上搜的代码答案,这个定义实例不懂:def transport_identify(self, obj, class_base),
相关代码:
'''
任务
1、自定义一个交通工具类(Vehicle)
2、设置类属性trans_type(默认值为SUV)和实例属性速度speed(int 类型,单位为 km/h)、体积size(tuple类型,单位为米。)
3、自定义方法 show_info( ),打印实例的所属类型和速度、体积的值;
4、自定义实例方法如下:
(1)定义move( )方法,实现打印"我已向前移动了50米"
(2)定义set_speed(new_speed)方法,设置对应实例的速度为new_speed km/h
(3)定义get_speed()方法,如果(2)中设置了速度值则打印出来,打印格式为"我的时速为:设置的速度值 km/h"
(4)定义speed_up()方法,设置每次调用时实例的速度都增加10km/h,并打印"我的速度由xx km/提升到了xx km/h"
(5)定义speed_down()方法,设置每次调用时实例的速度都降低15km/h,并打印"我的速度由xx km/下降到了xx km/h"
5、自定义方法 transport_identify( ),判断实例的trans_type属性是否为SUV。若是则打印"类型匹配",反之则打印"类型不匹配"
6、初始化实例对象tool_1,并根据上述效果图调用对应方法
'''
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(self.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('我的时速为:{} km/h'.format(self.speed))
# 自定义实例方法speed_up,实现对实例的加速
def speed_up(self):
old_speed = self.speed
self.speed += 10
print('我的速度由{} km/h提升到了{} km/h'.format(old_speed, self.speed))
# 自定义实例方法speed_down,实现对实例的减速
def speed_down(self):
old_speed = self.speed
self.speed -= 15
print('我的速度由{} km/h下降到了{} km/h'.format(old_speed, self.speed))
# 自定义实例方法transport_identify,实现对实例所属类型的判断
def transport_identify(self, obj, class_base):
if isinstance(obj, class_base):
print('类型匹配')
else:
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.speed_up()
# 调用实例方法 对实例进行减速
tool_1.speed_down()
# 调用实例方法 判断当前实例的类型
tool_1.transport_identify(tool_1, Vehicle)
尝试过的解决方式:已查isinstance的用法,但还是不会。
isinstance是Python中的一个内建函数
语法:
isinstance(object, classinfo)
如果参数object是classinfo的实例,或者object是classinfo类的子类的一个实例, 返回True。如果object不是一个给定类型的的对象, 则返回结果总是False。
如果classinfo不表示一个类(类型对象), 那么它要么是一个类的元组, 或者递归地包含这样的(由数据类型构成的)元组.其他的序列类型是不被允许的。
如果classinfo不是一种数据类型或者由数据类型构成的元组,将引发一个TypeError异常。
举例:
>>> isinstance(1, int)
True
>>> isinstance(1.0, float)
True
>>>isinstance(a,dict) 判断对象a是否为字典,如果为真,会打印True,如为假,打印False。
正在回答
同学,你好!isinstance() 函数来判断一个对象是否是一个已知的类型
第一个参数是实例对象,第二个参数可以是直接或间接类名、基本类型或者由它们组成的元组。
例:在调用transport_identify()时传入的第一个参数tool_1是实例对象,第二个参数Vehicle是类名,会判断tool_1是否为Vehicle类型
祝学习愉快!
- 参与学习 人
- 提交作业 5231 份
- 解答问题 2433 个
Facebook曾声称“只招全栈工程师”!全栈用人需求猛增,市面人才紧缺。 0基础进击Python全栈开发,诱人薪资在前方!
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星