作业提问

作业提问

第5点:自定义实例方法transport_identify,实现对实例所属类型的判断,这个方法是不需要定义在类中吗?


判断所属类类型,以下方式都不行,请问应该怎么写?

if (type(vech) == "Vehicle"):


if (type(vech) == "class '__main__.Vehicle'"):


正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
好帮手慕凡 2021-12-31 13:19:12

同学,你好!

1、自定义实例方法transport_identify( )需要定在类中;

2、同学可以在自定义方法transport_identify( )中使用isinstance(实例对象 , 类名)函数,来判断实例对象是否为某类的实例,函数中第一个参数是实例对象,第二个参数可以是直接或间接类名,如下图:

619311f609e0a3f109110680.jpg

参考代码:

def transport_identify(self, obj, class_base):
    if isinstance(obj, class_base):
        print('类型匹配')
    else:
        print('类型不匹配')

祝学习愉快~

  • 提问者 冉阿让1900 #1

    好的,谢谢!还想问一下这道题中自定义方法(3、5)自定义实例方法(4)的意图是?以及设置类属性trans_type和实例属性速度speed、体积size的意图是?

    2022-01-01 10:26:16
  • 时间, 回复 提问者 冉阿让1900 #2

    同学,你好!

    1、自定义方法 show_info( )用于打印实例的所属类型和速度、体积的值

    2、自定义方法 transport_identify( )是判断实例是否为Vehicle类型

    3、自定义实例方法(4)是实现交通工具的前移、速度设置、获取当前速度、加速行驶、减速行驶

    4、trans_type是交通工具的类型,speed是速度,size是交通工具的体积大小

    祝学习愉快!

    2022-01-03 09:51:27
  • 提问者 冉阿让1900 回复 时间, #3

    我问的是为什么要区分 自定义方法 和 自定义实例方法 ,类属性 和实例属性,而不是这些方法具体的作用,你的回答并不对应我的问题,请重新回答。

    2022-01-04 19:45:08
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星

相似问题

登录后可查看更多问答,登录/注册

请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师