Python自学笔记一、反射
来源:互联网 发布:如何做淘宝店铺 编辑:程序博客网 时间:2024/06/06 00:02
反射:根据字符串的形式去对象中操作其成员。
1,通过字符串的形式,导入模块
commons.pydef f1(): print 'f1'def f2(): print 'f2'def f3(): print 'f3'index.py#根据用户输入的内容导入模块``inp=raw_input('请输入模块:')print(inp,type(inp))com=__import__(inp)com.f1()#输入:commons#结果:('commons', <type 'str'>)# f1
这段代码的功能就是通过字符串的形式导入模块,其中最重要的就是内置import方法,我们传入的’commons‘赋值给inp,通过import方法,此时com可以视为import commons,此时执行f1就可以得到结果。
另外:import可以导入嵌套的模块,比如一个文件lib中含有test,test中含有comnons模块。这里我们可以通:`
impor lib.test.commonsfrom lib.test import commons#用__import__方式,有多级目录时fromlist=True:r=__import__('lib.test.commons', fromlist=True)
2,通过字符串的形式,调用模块中指定的函数
index.pyinp=input('请输入模块:')com=__import__(inp)inp_func=raw_input('请输入要执行的函数:')target_func=getattr(com,inp_func)`result=target_func()#输入:commons#输入:f1#输出:f1
通过getattr,可以进入com模块中寻找inp_func函数,当然不仅限于函数,模块中的对象都可以,例如commons中的全局变量。
hasattr,根据字符串的形式去模块中判断对象是否存在。
index.pyinp=input('请输入模块:')com=__import__(inp)inp_func=raw_input('请输入要执行的函数:')target_func=hasattr(com,inp_func)`print target_func#输入:commons#输入:s#输出:False
setattr,可以通过字符串的形式进行设置。
r=hasattr(commons,'AGE')print rsetattr(commons,'AGE',18)r=hasattr(commons,'AGE')print r#False#True
delattr可以删除模块中的对象。
总结:import 用字符串的形式导入模块;getattr以字符串的形式去某个模块中寻找函数,加上()表示执行函数;hasattr可以判断某个对象中是否有某个成员;serattr可以设置某个对象中的成员;delattr可以删除某个对象中的成员。
0 0
- Python自学笔记一、反射
- python自学笔记(一)
- python自学笔记(一)
- Python自学笔记(一)变量类型
- 20170220 Python自学笔记(一)
- Python自学手册笔记(一)
- Python自学笔记(一)(Python基础知识)
- Python自学笔记系列一——认识python
- (JAVA自学笔记)反射技术
- 黑马程序员--自学笔记--反射
- Python自学笔记系列一——基础语法
- python自学笔记1
- python自学笔记 2
- python自学笔记 3
- python自学笔记 4
- python自学笔记
- Python自学笔记
- python自学笔记 20151126
- Linux 操作MySQL常用命令行
- java反射
- Java 适配器模式简述
- singleTask和singleInstance的区别
- 支付宝(蚂蚁金服开放平台)-支付结果异步通知-验签
- Python自学笔记一、反射
- Linux centos7下mysql安装
- myeclipse打开文件乱码
- linux系统的概况和安装
- 简述css3动画
- Integer n=new Integer(1)和int n=1的区别
- Spark MLlib java TF-IDF计算 (spark 1.5.2)
- 平稳数据
- FFMPEG命令参数