课程咨询 :0351-5608878

太原PHP培训 > 达内新闻 > python元编程详解(1)
  • python元编程详解(1)

    发布:太原PHP培训      来源:伯乐在线      时间:2016-07-15

  • 1.python元编程是什么?

    软件开发中很重要的一条原则就是“不要重复自己的工作(Don’t repeat youself)”,也就是说当我们需要复制粘贴代码时候,通常都需要寻找一个更加优雅的解决方案,在python中,这类问题常常会归类为“元编程”。

    主要目的:是创建函数和类,并用他们操作代码(例如修改,生成,或者包装自己已有的代码)。

    python中基于这个目的的主要特性包括:装饰器,类装饰器,元类。这篇文章带大家一起讨论各种元编程技术。

    2.元编程应用:

    (1):如何给函数添加一个包装?

    这里就用到我们常用的特性:装饰器函数,用来解决给函数加上一种特定的修饰方法来达到自己想要的效果。如:日志记录,时间统计等。

    太原达内php培训班

    这是一个简单的例子,用来统计函数的循环时间,比较简单,但是这也充分的说明了装饰器的作用:

    装饰器就是一个函数,接受一个函数作为参数,并且返回一个新的函数作为输出。.

    现在来看一下timethis函数:

    这个函数的作用就是接受一个函数,在函数内部对接受的函数进行修改并输出新的函数,这里比较重要的一点就是我们要用args和*kwargs来接受任何形式的参数,正如我们这里的wapper函数一样,它可以将timethis传递进来的参数全部接受。

    这里面还有一个最容易忽略,但是又特别重要的一点:

    我们在编写wapper函数时,对其添加了修饰@wraps(func), 这个很重要,它的作用是可以保留函数的元数据,接下来为大家补充一些重要的细节问题。

    2.装饰气如何保存函数的元数据?

    我们来运行一下刚才编写的例子:

    太原php培训机构

    我们再来将wapper函数的装饰器去掉执行:

    太原php培训

    这里可以清晰的看出对比结果,在我们添加wapper函数添加修饰后,保留的原来函数的元数据。这点请大家牢记!在编写装饰器的时候容易忽略这个细节,导致结果不对。

上一篇:应该做技术还是应该做管理?

下一篇:太原达内php培训班:如何学习编程和转行

最新开班日期  |  更多

php高级开发名企定制班(剩2个名额)

php高级开发名企定制班(剩2个名额)

开班日期:03-15

php高级开发周末班(剩5个名额)

php高级开发周末班(剩5个名额)

开班日期:03-15

php高级开发免费试听(剩5个名额)

php高级开发免费试听(剩5个名额)

开班日期:03-15

更多高级开发工程师精品班

更多高级开发工程师精品班

开班日期:03-15

  • 地址:山西省太原市小店区学府街长治路高新国际A座24层
  • 课程培训电话:0351-5608878     全国服务监督电话:400-827-0010
  • 服务邮箱 ts@tedu.cn
  • 2001-2016 达内时代科技集团有限公司 版权所有 京ICP证8000853号-56