巧用exec语句修改string.Template的delimiter
来源:互联网 发布:网络stp 编辑:程序博客网 时间:2024/05/19 14:01
http://jianpx.iteye.com/blog/899230
原文名字叫做:浅析python的string.Template
其实问题简单来说就是:能否在定义一个class的时候,在class创建的“第一时间”,将一个变量传进去。
这个“第一时间”在__init__函数之前,因为在Template这种用模板创建的类里,有些成员函数是在__init__之前就被赋值了
想出一个解决方案:
#!/usr/bin/python
#coding :utf-8
from string import Template
def CreateTemplate( s, delimiter=Template.delimiter ):
_ret = None
code = '''
class _mt(Template):
delimiter = '%s'
_ret = _mt
''' % delimiter
exec code
print '?????????\n', _ret
return _ret(s)
def _test():
s = '#who likes #what'
#t = MyTemplate(s, delimiter='#')
t = CreateTemplate(s, delimiter='#')
d = {'who': 'jianpx', 'what': 'mac'}
print t.substitute(d)
if __name__ == '__main__':
_test()
其实就是充分利用了exec这个语句,这在python中可是一个神语句哦~提供最大限度的灵活性,当然也毫无安全性和效率可言。
这个语句的用途还有很多,我个人非常喜欢,在实际项目中也用来解决一些疑难问题,比如解析C++头文件的定义到Python中。
- 巧用exec语句修改string.Template的delimiter
- python里修改string.Template的正则表达式
- 关于string 的template
- add delimiter into string
- 浅析python的string.Template
- string模块的Template类
- mysql语句定界符[delimiter]
- EXEC语句
- template string
- template string
- delimiter的作用介绍
- MySQL delimiter的作用
- mysql delimiter的说明
- MySql 中 的delimiter
- Runtime.getRunTime.exec(String command)的使用
- EXEC对TOP语句的动态调用
- 动态语句的使用方法(exec/sp_executesql)
- 获取exec语句的操作结果
- 设置设备进行开发
- js中的window.onload和jquery中的load区别的讲解
- MFC控件积累——CDockablePane控件
- 送给80、90后的人生经典语录,别再孩子气了
- linux下usb转串口驱动分析
- 巧用exec语句修改string.Template的delimiter
- Android中SQLiite的replace、update、insert以及表级和字段级冲突解决
- kettle连接mysql错误连接数据库org.pentaho.di.core.exception.KettleDatabaseException
- 怎样花两年时间去面试一个人
- java 中的线程池
- pgsql 安装详解
- ARM学习笔记015之GPIO(汇编、key、led接线、int main、-wall)
- 64位ubuntu 12.04 LTS 一步一步安装 hadoop2.2.0
- PCB