python 简单元编程
软件开发领域中最经典的口头禅就是“don’t repeat yourself”。 也就是说,任何时候当你的程序中存在高度重复(或者是通过剪切复制)的代码时,都应该想想是否有更好的解决方案。 在Python当中,通常都可以通过元编程来解决这类问题。 简而言之,元编程就是关于创建操作源代码(比如修改、生成或包装原来的代码)的函数和类。 主要技术是使用装饰器、类装饰器和元类。 一、你想在函数上添加一个包装器,增加额外的操作处理(比如日志、计时等)。 之前思路:利用装饰器。 装饰器最基本的原理如下: @timethis def countdown(n): pass 效果等同如下: def countdown(n): pass countdown = timethis(countdown) 所以我们在inner函数中实现我们想要的业务逻辑即可。 def wraper(func): def inner(*args,**kwargs): # 你想实现的额外功能 res = func() return res return inner 但是如果我们打印 func.__name__,就会出现inner,这个函数的重要的元信息比如名字、文档字符串、注解和参数签名都丢失了。 二、如何解决上述问题呢 注意:任何时候你定义装饰器的时候,都应该使用 functools 库中的