zoukankan      html  css  js  c++  java
  • Python基础19_函数和方法的区分,反射

     一. 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成员删除
        
        

  • 相关阅读:
    Alpha版本冲刺(一)
    福大软工 · 第七次作业
    福大软工 · 第八次作业(课堂实战)- 项目UML设计(团队)
    福大软工1816 · 第六次作业
    福大软工1816 · 第五次作业
    福大软工1816
    福大软工1816 · 第一次作业
    Python学习
    整理一下软工实践这门课的一些链接
    个人作业——软件工程实践总结作业
  • 原文地址:https://www.cnblogs.com/guyannanfei/p/10152916.html
Copyright © 2011-2022 走看看