博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python 面向对象 反射
阅读量:7100 次
发布时间:2019-06-28

本文共 737 字,大约阅读时间需要 2 分钟。

  1. 什么是反射
    通过字符串的形式操作对象相关的属性。python中的一切事物都是对象(都可以使用反射)
  2. hasattr
    判断属性方法是否存在
  3. getattr
    获取属性方法
  4. setattr
    设置属性方法
  5. delattr
    删除属性方法
  6. 使用例子
    class Person:    sex = 'male'    def __init__(self,name):        self.name = name    def sayHi(self):        print('hi, '+self.name+'!')    @classmethod    def show_Type(cls):        print(cls.sex)hsr = Person('hsr')#判断是否存在has_arg = hasattr(hsr,'name')print(has_arg)has_method = hasattr(hsr,'sayHi')print(has_method)#获取name = getattr(hsr,'name')print(name)func = getattr(hsr,'sayHi')func()#设置setattr(hsr,'name','cool')setattr(hsr,'sayHi',lambda self:self.name)#删除delattr(hsr,'name')delattr(hsr,'sayHi')#反射类、模块的属性和方法相同,将对象换成对应的名字就行#获取自己模块的名字,使用sys.modules[__name__]

     

转载于:https://www.cnblogs.com/walthwang/p/10402888.html

你可能感兴趣的文章
V4L2(二)虚拟摄像头驱动vivi深入分析【转】
查看>>
写一个函数代替php自带的include_once
查看>>
解决httpd: Could not reliably determine the server's fully qualified domain name
查看>>
实现js中的重载
查看>>
静态多态性
查看>>
ASP.NET26个性能优化方法
查看>>
dhtmlx Gantt实例介绍分析
查看>>
在 windows 环境下安装 redislive
查看>>
柯西-许瓦兹尔不等式
查看>>
vi查找替换命令详解
查看>>
GE SmartMeter串口接线笔记
查看>>
iOS开发--底层开发之越狱开发第一篇
查看>>
0020-求圆锥的体积
查看>>
逾期潮来了
查看>>
iOS主流机型更新
查看>>
iOS自动布局的学习
查看>>
单利模式
查看>>
BZOJ2521:[SHOI2010]最小生成树(最小割)
查看>>
将execl里的数据批量导入数据库
查看>>
DOM笔记(一):HTMLDocument接口
查看>>