Python基础19_函数和方法的区分,反射

本文深入探讨Python中的isinstance, type, issubclass函数的区别与应用,解析如何准确判断对象类型及类继承关系。同时,文章详细介绍了Python中函数与方法的识别方式,以及反射机制的四大核心操作:hasattr, getattr, setattr, delattr,帮助读者掌握Python高级特性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 一. isinstance, type, issubtance
    1. isinstance(obj, cls)
    判断obj是否是cls类的对象
    2. type(obj)
    返回obj的精准的数据类型
    3. issubclass(sub, super)
    判断sub类是否是super类的派生类
二. 区分函数和方法
    1. 通过打印名字
    如果打印结果中有function, 就是函数
    如果打印结果中有method, 就是方法
    这种方法有缺点, 如果是类中的方法就不怎么管用了
    实例方法: 通过 对象.实例方法 调用, 结果是method, 通过 类名.实例方法 调用, 结果是function
    类方法: 不管是通过类名调用还是通过对象调用, 结果都是方法. 类也是对象, 属性是类变量, 方法是类方法
    静态方法: 不管是通过类名调用还是通过对象调用, 结果都是函数
    2. 通过借助模块 from types import Functiontype, Methodtype
    所有的方法都是Methodtype的实例
    所有的函数都是Functiontype的实例
    isinstance(obj.方法名, Functinontype或Methodtype)    返回True或False
三. 反射
    hasattr(obj, name)    判断obj中是否包含name成员
    getattr(obj, name)    从obj中获取name成员
    setattr(obj, name, value)    把obj中的name成员设置成value, 注意, 这里的value可以是值, 也可以是函数或者方法
    delattr(obj, name)    把obj中的name成员删除
    
    

转载于:https://www.cnblogs.com/guyannanfei/p/10152916.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值