python反射
2015-10-29 10:35
453 查看
反射的作用就是列出对象的所有属性和方法,反射就是告诉我们,这个对象到底是什么,提供了什么功能 。
介绍一种可以动态导入的方法。
以字符串的形式导入模块
以字符串的形式执行函数
首先,介绍一个函数 __import__,这个函数传入的参数是module的名字,返回这个module,然后,在结合之前介绍过的getattr,于是,我们可以写出下面两句代码,实现对象的自省。
举个例子:
如上所看,dir 是一个内置的 反射函数 ,可以列出对象的属性和方法。
再看另外一个内置的方法 :getattr
可以取出指定属性
再看另外一个方法 :callable
检查属性是否是可以调用的函数 。
介绍一种可以动态导入的方法。
以字符串的形式导入模块
以字符串的形式执行函数
首先,介绍一个函数 __import__,这个函数传入的参数是module的名字,返回这个module,然后,在结合之前介绍过的getattr,于是,我们可以写出下面两句代码,实现对象的自省。
举个例子:
>>> import json >>> dir (json) [ 'JSONDecoder' , 'JSONEncoder' , '__all__' , '__author__' , '__builtins__' , '__doc__' , '__file__' , '__name__' , '__package__' , '__path__' , '__version__' , '_default_decoder' , '_default_encoder' , 'decoder' , 'dump' , 'dumps' , 'encoder' , 'load' , 'loads' , 'scanner' ] >>> |
再看另外一个内置的方法 :getattr
>>> getattr (json, 'encoder' ) <module 'json.encoder' from '/usr/lib/python2.7/json/encoder.pyc' > >>> getattr (json, 'load' ) <function load at 0x7f66af736140 > >>> |
再看另外一个方法 :callable
>>> callable ( getattr (json, 'load' )) True >>> callable ( getattr (json, 'encoder' )) False >>> |
相关文章推荐
- python学习笔记
- python内置函数
- python类
- python性能鸡汤
- Python开发一个csv比较功能相关知识点汇总及demo
- Python with/as Context Managers
- python爬虫学习笔记2——百度贴吧帖子爬取
- Python - List
- 【详解】Python抓取数据脚本
- 用python求解一元二次方程组
- Python中的时间
- Python学习之路四---面向对象
- 缓存算法的 Python 实现
- python扩展实现方法--python与c混和编程
- Python windows serial
- python 将字符串类型转为时间类型
- 八大排序算法的 Python 实现
- Python Django安装
- python多线程threading
- 50个python库