python eval函数 动态执行python语句
2015-08-05 16:01
603 查看
背景
在写python脚本的时候,需要根据不同的命令来执行不同的函数,刚开始的时候是通过sys.argv来传递需要执行的函数和相关参数,很土的用if判断,每多一个函数就要多加几行执行逻辑,就搜索了一下python动态执行的方法,找到了eval这个函数。[code]def add(a, b): return a + b add(1, 2) #返回3
如果想动态调用add函数,可以这么写:
[code]eval('add(1, 2)') #返回的结果也是3
有了eval,就不用每次都写执行逻辑了,例如:
[code]import sys class A(object): def f1(self): print "f1" def add(self, a, b): print "add " + str(a) + " " + str(b) + " = " + str(a + b) def cmd(self, argv): eval('self.' + argv[1] + '(' + ','.join(argv[2:]) + ')') if __name__ == '__main__': a = A() a.cmd(sys.argv) #就不用写下面的了 #if sys.argv[1] == "f1": # a.f1() #elif sys.argv[1] == "add": # a.add(int(sys.argv[2]), int(sys.argv[3]))
相关文章推荐
- python中的字典详细介绍
- Python中eval带来的潜在风险
- Python实现ssh批量登录并执行命令
- Python学习笔记03
- python的logging模块,记录所发生的异常。
- python中的reduce函数
- 机器学习实战之朴素贝叶斯进行文档分类(Python 代码版)
- python问题:IndentationError:expected an indented block错误解决
- myeclipse python下配置文档说明_转载
- python多线程编程(4): 死锁和可重入锁
- python下安装lxml
- python 爬虫 爬下图片
- python中类方法和静态方法
- Python学习笔记02
- Python3 win7安装BeautifulSoup
- Python快速教程博客园地址
- 南邮 OJ 1387 Pythons
- Python 爬虫
- python 的常用时间操作
- Python Paramiko模块安装和使用