反射的定义:使用字符串类型的名字 去操作变量

hasattr 函数 与getatter配合使用,用来判断变量是否存在

if hasatter(my,'a'):#如果为真执行getatter(my,'a')

setattr 函数 设置修改变量

delatter 函数 删除一个变量

class A:pass
a = A()
setattr(a,'name','nezha')
setattr(A,'name','alex')
print(A.name)
print(a.name)
#给类加个变量
delattr(A,'name')
print(a.name)

getatter  函数 反射对象的属性 、反射对象的方法 反射类的属性 反射类的方法

class Teacher:dic = {'查看学生信息':'show_student','查看讲师信息':'show_teacher'}def show_student(self):print('show_student')def show_teacher(self):print('show_teacher')@classmethoddef func(cls):print('hahaha')
getatter(a,变量名) #反射对象的属性
ret = getatter(Teacher,'dic') #反射对象的方法
#结果 {'查看学生信息':'show_student','查看讲师信息':'show_teacher'}
ret2 = getatter(Teacher,'func')
ret2()
#结果 直接运行了 func函数

# 通过反射
# 对象名 获取对象属性 和 普通方法
# 类名 获取静态属性 和类方法 和 静态方法

内置方法

isinstance(obj,cls) 检查obj是否是类cls的对象

issubclass(sub,super)  检查sub类是不是super的子类

class A:pass
class B(A):pass
a = A()
print(isinstance(a,A))
print(issubclass(B,A))

转载于:https://www.cnblogs.com/cxys85/p/9782965.html

Python——反射相关推荐

  1. python学不会的表情包-小学生绞尽脑汁也学不会的python(反射)

    小学生绞尽脑汁也学不会的python(反射) 1. issubclass, type, isinstance issubclass 判断xxxx类是否是xxxx类的子类 type 给出xxx的数据类型 ...

  2. 想用Python做自动化测试?Python反射机制的应用

    通常,我们操作对象的属性或者方法时,是通过点"."操作符进行的.例如下面的代码: class Person:type = "mammal"def __init_ ...

  3. python反射机制_Python反射机制

    python反射 什么是反射? 这是摘自维基百科的解释 在计算机学中,反射(英语:reflection)是指计算机程序在运行时(runtime)可以访问.检测和修改它本身状态或行为的一种能力.[1]用 ...

  4. python反射实例化_Python类反射机制使用实例解析

    这篇文章主要介绍了Python类反射机制使用实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 反射就是通过字符串的形式,导入模块:通过字符串的 ...

  5. python反射机制_详解python之反射机制

    一.前言 deff1():print('f1')deff2():print('f2')deff3():print('f3')deff4():print('f4') a= 1 test.py impor ...

  6. 【Python】python 反射机制在实际的应用场景讲解

    剖析python语言中 "反射" 机制的本质和实际应用场景 一. 前言 def s1(): print("s1是这个函数的名字!") s = "s1& ...

  7. python反射和高阶内置方法

    1.isinstance:判断对象和类的关系 #判断结果返回bool类型 class A:pass class B(A):pass a = A() print(isinstance(a,A)) #Tr ...

  8. Python反射(自省)机制

    一.动态导入模块. 介绍反射机制之前我们先来看看什么是动态导入模块.这时候,有一个需求,那就是我们不知道用户要导入哪一个模块,这时候我们应该如何设计一个程序满足去导入用户输入的模块呢? 假设我们现在有 ...

  9. python反射、闭包、装饰器_python之闭包、装饰器、生成器、反射

    1. 函数的作用域 1.在函数定义时候就固定,与调用位置无关,在调用的时候返回到函数定义的位置 x=1 #全局作用 def f1(): #整个f1函数是定义阶段 deff2():print(x)ret ...

  10. python 反射和动态加载_Python的反射

    什么是反射 反射是一个很重要的概念,它可以把字符串映射到实例的变量或者实例的方法然后可以去执行调用.修改等操作.它有四个重要的方法: getattr 获取指定字符串名称的对象属性 setattr 为对 ...

最新文章

  1. c++ 调用labview_LabVIEW面向对象编程_初窥门径(5):开发方式漫谈
  2. 用标号跳出当前多重嵌套循环是否继续执行循环_4、在JAVA中如何跳出当前的多重嵌套循环?-Java面试题答案...
  3. C#获取当前系统磁盘符、系统目录、桌面等
  4. 解决git提交问题error: The requested URL returned error: 403 Forbidden while accessing
  5. Unity环境下RTMP推流+RTMP播放低延迟解决方案
  6. Qt文档阅读笔记-QThread::setPriority(Priority priority)官方解析及实例
  7. hive 开窗函数之lag,lead,first_value,last_value
  8. ListView乱谈之ListView的布局
  9. Nexus 4 成功线刷Android 4.3 Jelly Bean
  10. QPS,TPS,RPS你知道多少?
  11. 大数据应用之啤酒尿布
  12. wxpy 建群 err_code: 1 err_msg:
  13. 灰色-马尔可夫预测模型
  14. IRQL-NOT-LESS-OR-EQUAL异常分析
  15. 人才辈出各领风骚 中国股市十大操盘手排行榜
  16. Pytorch入门实战 | 第P2周:彩色图片识别
  17. oracle窗口设置,ORACLE安装DISPLAY变量设置 go with
  18. 怎样修改git用户名、密码和邮箱?
  19. opencv双目相机标定-示例代码分析
  20. esp8266~lwip突破MTU最大1500限制

热门文章

  1. 2015年企业如何避免索尼式的安全悲剧?
  2. 沙利文:奢侈品防伪领域RFID技术作用巨大
  3. Jenkins 部署
  4. Spring实现热加载MyBatis 的XML配置文件
  5. PostgreSQL的generate_series函数应用例子
  6. DOS循环:bat/批处理for命令详解之一 (史上虽详尽的总结和说明~~)
  7. 与vnpy相关的有用博客网址
  8. netty 之 telnet HelloWorld 详解
  9. Codeforces 458C - Elections
  10. [Java基础] 深入jar包:从jar包中读取资源文件