isinstance与issubclass、反射、内置方法

一、isinstance与issubclass方法

1、isinstance是用来判断对象是否是某个类

  isinstance(obj,class)

2、issubclass是用来判断一个类是否为另一个类的子类

  issubclass(Bar,Foo)

 class Foo:
pass class Bar(Foo):
pass obj = Foo()
print(isinstance(obj, Foo)) # True print(issubclass(Bar, Foo)) # True

isinstance与issubclass

二、反射

1、什么是反射

通过字符串的形式操作对象相关的属性。python中的一切事物都是对象(都可以使用反射)

2、四个反射函数

name必须用字符串表示

hasattr(object,name)   # 判断object中有没有一个name字符串对应的方法或属性

setattr(object,name, value)         # 设置object对象的name属性的值问value

getattr(object,name,None)         # 获取object对象的name属性的值,若没有那么属性,则返回None

delattr(object,name)            # 删除object对象的name属性
 class Foo:
pass obj = Foo()
setattr(obj, 'name', 'tom')
setattr(obj, 'age', 19)
print(obj.__dict__) # {'name': 'tom', 'age': 19} print(hasattr(obj, 'name')) # True print(getattr(obj, 'name')) # tom
print(getattr(obj, 'name1', None)) #None delattr(obj,'name')
print(obj.__dict__) # {'age': 19}

三、内置方法

http://www.cnblogs.com/linhaifeng/articles/6204014.html#_label3

最新文章

  1. python装饰器
  2. 耿丹CS16-2班课堂测试作业汇总
  3. C/C++: C++位域和内存对齐问题
  4. PhotoShop算法原理解析系列 - 风格化---》查找边缘。
  5. 关于cmd下使用taskkill无法终止进程名包含空格的进程的解决方案
  6. rpm安装mysql 默认安装目录
  7. JAVA学习笔记--二
  8. [LeetCode145]Binary Tree Postorder Traversal
  9. Python库:序列化和反序列化模块pickle介绍
  10. Hibernate第七篇【对象状态、一级缓存】
  11. 在form里面,放了四个UEditor,怎么在后台分别获取它们值
  12. XML相关知识
  13. 操作Work、Excel、PDF
  14. [已解决]Cannot find one or more components.Please reinstall the application
  15. python tcp黏包和struct模块解决方法,大文件传输方法及MD5校验
  16. html5常用数学 公式的用法
  17. Android-Binder机制
  18. sql bak还原到新数据库
  19. 使用jstl报错:Can not find the tag library descriptor for “http://java.sun.com/jstl/core”
  20. P1002 谁拿了最多奖学金

热门文章

  1. JS实现的ajax
  2. Tomcat负载均衡、调优核心应用进阶学习笔记(一):tomcat文件目录、页面、架构组件详解、tomcat运行方式、组件介绍、tomcat管理
  3. phhstrom 快捷键
  4. python学习笔记:使用freeze命令迁移模块
  5. servlet项目找不到java文件(由于照抄代码造成的bug)
  6. JS的常用正则表达式 验证密码用户名等
  7. github中fork分支和pullrequest的最佳实践
  8. 从一个url地址到最终页面渲染完成,发生了什么?
  9. Android开发——回调(Callback)
  10. Shell 脚本的编码规范